【问题标题】:ASP.net 4, MVC and scriptmanager syntax to use asp: ajax control toolkit elementsASP.net 4、MVC和scriptmanager语法使用asp:ajax控件工具包元素
【发布时间】:2012-01-18 12:11:50
【问题描述】:

背景: 我是 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.tab 等所需的 asp:scriptmanager 标记...

我收到以下错误:“ScriptManager”类型的 *Control '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 asp.net-mvc-3


    【解决方案1】:

    您不应该在 asp.net mvc 应用程序中使用 Web 控件。你可以这样做,但我不建议这样做。您可以使用一些 javascript 库,如 jQuery、Ext.Js 等...在您的视图中执行异步操作。

    我喜欢 jQuery,它易于学习和开发,而且可以跨浏览器(例如在 firefox、chrome 等中工作),我一直在我的 web 应用程序中使用它,它带有 asp.net mvc 并且可以工作很好。看看这个链接:http://api.jquery.com/jQuery.ajax/ 它会向你展示一些使用 ajax 的操作(get/post 调用,json 结果等......)使用 jquery lib。

    jQuery自带Visual Studio的asp.net mvc的默认模板,使用它:)

    干杯!

    【讨论】:

    • 您好,我需要在位于选项卡中的 jstree 中显示信息,如果没有 MVC 应用程序中的 asp.tabContainers,我该如何做到这一点?另外我如何使用 ActionLink 功能。请给我一些例子好吗?
    • 嗨朋友,你可以使用 jQuery UI (ui.jquery.com) 来做这样的事情,在这个库中有一些组件,如选项卡、模式窗口、自动完成、按钮等......与 jquery 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多