如何在 ASP.NET MVC 中通过 Ajax 提交表单?

Posted

技术标签:

【中文标题】如何在 ASP.NET MVC 中通过 Ajax 提交表单?【英文标题】:How do I submit a form via Ajax in ASP.NET MVC? 【发布时间】:2011-06-16 14:20:56 【问题描述】:

我有一个由几个部分视图组成的视图,其中一个用Edit 按钮显示用户信息。

单击Edit 按钮时,我对另一个Action 进行ajax 调用,该调用返回一个Partial View,该Partial View 被加载到JQuery-UI 模式对话框中。

如何通过 Ajax 提交此编辑表单并更新主页上的 UserInfo 部分视图?

【问题讨论】:

看这里mrgsp.md:8080/awesome/foobar(点击创建或编辑) 这几乎是我需要做的......但这看起来只是一个演示......不是教程或任何东西...... 【参考方案1】:

Ajax 调用

$('#submitIt').submit(function() 
    var createdBy = $('#createdBy').val();
    $.ajax(
         type: "POST",
         url: '/MyController/GetContact/',
         dataType: "html",
         data:  'createdBy': createdBy ,
         success: function (result) 
            $('#myLittleForm').html(result);
         ,
         error: function (request, status, error) 
              //Do Something on Failure
         
     );
);

控制器

    [HttpPost]
    public ActionResult GetContact(string createdBy)
    
         ViewData["CreatedBy"] = createdBy;
         return PartialView("MyView");
    

标记

<div id="myLittleForm">
   <form action="/MyController/GetContact/" method="post">
      <input id="createdBy" type="text"/> <br/>
      <input id="submitIt" type="submit" value="Submit"/>
   </form>
</div>

注意

当您在标记下提交表单时,会进行 ajax 调用,并将 div“myLittleForm”替换为您的局部视图。

【讨论】:

进行 ajax 调用不是我的问题...基本上我需要知道控制器将如何处理 ajax 帖子然后更新主页上的部分视图(无需重新加载整个主页)... 好的,我想我现在明白了。我会试试看。【参考方案2】:

编辑:哎呀,脚本没有显示 - 修复 您需要参考此处显示的 Ajax 脚本:

我不记得最后一个脚本是什么,但我在我的应用程序中使用它,所以它可能不会受到伤害:)

然后您需要在视图中使用 Ajax.BeginForm 来异步发布表单。它需要一个 AjaxOptions 参数,允许您指定更新目标、成功回调等。示例:

<% Ajax.BeginForm("FormName" , new  id = Model.SomeProperty , 
       new AjaxOptions  UpdateTargetId = "MyDivToUpdate", OnSuccess = "onSuccess" ); %>

【讨论】:

以上是关于如何在 ASP.NET MVC 中通过 Ajax 提交表单?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC3 中通过 HTTPS 提供静态文件(在 ~/Content 中)

带有 ASP.NET MVC 和 AJAX 的分页表 [关闭]

在 ASP.NET MVC Core 3.1 中通过 jQuery 为部分视图附加 html 的问题

如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)

ASP.NET MVC中如何以ajax的方式在View和Action中传递数据

如何在 ASP.NET MVC 中手动设置用户角色?