asp.net mvc复杂ajax更新

asp.net mvc复杂ajax更新,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我想以某种方式执行一些ajax调用 我有一页。此页面中有两个ViewUserControls,例如control1和control2 control1有一个调用control2的Ajax.ActionLink列表,如下所示: <%= Ajax.ActionLink(page.Name, "PageDetails", new { pageSysName = page.SysName }, new AjaxOptions { UpdateTargetId = "pageEdit" })%>

我想以某种方式执行一些ajax调用

我有一页。此页面中有两个ViewUserControls,例如control1和control2

control1有一个调用control2的Ajax.ActionLink列表,如下所示:

<%= Ajax.ActionLink(page.Name, "PageDetails", new { pageSysName = page.SysName }, new AjaxOptions { UpdateTargetId = "pageEdit" })%>
Ajax.BeginForm("SavePage", "Admin", new AjaxOptions { UpdateTargetId = "pageEditUpdated" })
当用户点击Save按钮时,它当前使用控制器的基本内容(“更新”)返回类型更新名为pageEditUpdated的div

我要讨论的部分是如何更新control2以反映新的变化


总而言之,一个页面有两个控件。我希望control2刷新自身并更新div,以通知用户已执行更新。

让您的SavePage方法返回反映更新表单内容的部分,包括更新消息。让更新目标成为表单的“内部容器”

<% Ajax.BeginForm("SavePage", "Admin", new AjaxOptions { UpdateTargetId = "innerForm" }) { %}
   <div id="innerForm">
   <% Html.RenderPartial( "EditPageContents" ) %>
   </div>
<% } %>
你的局部观点应该是正确的

<% if (!string.IsNullOrEmpty( UpdateMesage )) { %>
   <%= Html.Encode( UpdateMessage ) %>
<% } %>

我必须支持特凡福森的评论(我会投他的票,但我的声誉显然还不够高)。无论如何,当我将Ajax功能与我的MVC站点集成时,我发现微软提供的Ajax方法相当笨拙。因此,我转而使用jQuery.form插件(很好的例子)。我发现它让事情变得更容易处理。我刚刚为我想成为ajax的页面部分创建了MVC用户控件,并根据需要重新加载了该用户控件。

为答案干杯。我还没有尝试jquery版本。我需要学习更多关于jquery的知识来理解这一部分。
<% if (!string.IsNullOrEmpty( UpdateMesage )) { %>
   <%= Html.Encode( UpdateMessage ) %>
<% } %>
$(function() {
    $('form').submit( function() {
        $.post( $(this).attr('action'), $(this).serialize(), function(data) {
            $('#updateMessage').html(data).show();
        });
        return false;
    });
});