上下文:我是MVC asp.net Framework 4的新手。在我的应用程序中,我希望在用户单击事件(使用ActionResult)时更新部分视图。在index.aspx中,我使用标准的Ajax.BeginForm,其中包含一个div,我在其中呈现部分视图(它调用ActionResult):
*<%using (Ajax.BeginForm("Search", "Home", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divToUpdate" }))
{ %>
Name
<input id="txtName1" name="RoleName" type="text" value="" />
<br />
<br />
<div id="divToUpdate">
<%--render what you want to update here.. --%>
<%Html.RenderPartial("~/Views/Shared/SecurityMainPartialView.ascx", Model); %>
</div>
<br />
<input type="submit" id="btnSubmit" value="Search" />
<% }%>*
局部视图的更新工作正常。但是:
问题:
在Site.Master中,我有一个表单标记,我必须删除它,因为部分视图会将操作链接重定向到索引,而不是搜索。在删除这一点时,我不能再使用asp:scriptmanager标记,这是使用asp.tab等所需的。
我得到以下错误:*类型为"ScriptManager"的控件"ctl00_MainContent_ScriptManager1"必须放置在runat=server的表单标记内。*错误甚至出现在网站主控中的ActionLinks上。
站点主代码:
*<body>
<%-- <form id="form1" runat="server">
--%> <div id="container">
<div id="header">
<h1 style="width: 1207px; margin-left: 0px">PROM (Promise Remote Order Management)</h1>
<div id="menubar">
**<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("Security", "SecurityMain", "Security")%></li>
<li style="width: 1208px; height: 0px"><%= Html.ActionLink("About", "About", "Home")%></li>**
</div>
</div>
<div id="content" style="height: 100%; width: 100%;">
<asp:ContentPlaceHolder ID="MainContent" runat="server" >
<p style="height: 132px; margin-top: 0px">
</p>
</asp:ContentPlaceHolder>
</div>
<div id="footer">
<p>© footer stuff goes here!</p>
</div>
</div>
<%-- </form>--%>
</body>
</html>*
问题:
如何在我的Asp.net MVC 4应用程序中使用脚本(ScriptManager)?我使用MVC ScriptManager还是其他什么?我知道我们不应该在MVC中使用脚本管理器,因为它违反了规则。。。我的选择是什么。
谢谢你,如有任何帮助,我们将不胜感激。
您不应该在asp.net mvc应用程序中使用web控件。你可以做,但我不推荐。您可以使用一些javascript库,如jQuery、Ext.Js等…在视图中执行异步操作。
我喜欢jQuery,它易于学习、快速开发和跨浏览器(适用于firefox、chrome等),我一直在我的网络应用程序中使用它,使用asp.net mvc,效果非常好。请查看此链接:http://api.jquery.com/jQuery.ajax/它将向您展示一些使用ajax的操作(get/post调用、json结果等)usign jquery lib。
jQuery是visualstudio的asp.net mvc的默认模板,使用它:)
干杯!