解决方法:
在ASP.NET MVC中,使用Html.BeginForm
生成的表单默认是同步的,会导致页面刷新。如果想要使用Ajax发送异步请求,可以使用Ajax.BeginForm
。
首先,确保在视图中引用了相关的JavaScript库:
然后,在视图中使用Ajax.BeginForm
生成表单,并指定UpdateTargetId
属性来指定将返回的结果更新到哪个元素中:
@using (Ajax.BeginForm("ActionName", "ControllerName", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" }))
{
}
在控制器中,定义一个接收Ajax请求的动作方法:
[HttpPost]
public ActionResult ActionName()
{
// 处理表单提交的逻辑
return PartialView("_PartialViewName");
}
在上述代码中,"_PartialViewName"
是一个部分视图(Partial View),它会返回一个局部HTML片段作为响应。
最后,在视图文件夹中创建一个名为"_PartialViewName.cshtml"
的局部视图文件,用于显示处理结果:
处理结果
这样,当表单提交时,会通过Ajax发送异步请求到指定的控制器动作方法,并将返回的结果更新到result
元素中,不会导致页面刷新。
上一篇:ASP.NET MVC Html Helper listboxFor 点击事件
下一篇:ASP.NET MVC Html.RenderPartial引发UriFormatException(字符串太长)问题。