asp.net MVC 4 - MVC - 为什么在执行 ajax.beginform 之后的代码



Form for AJAX 调用:

@using(Ajax.BeginForm("RefineSearchResults", "Search", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "resultsSec" }))
{
<input type="submit" value="submit" />
<div id="resultsSec"></div>
}

在表单标记之后:

@{Html.RenderAction("Index", "NewsLetter", new { area = "" });}

但是,它在回发时会在第二段代码上引发异常,尽管它不应该被执行,因为它是一个 AJAX 调用并且它位于 Ajax 表单之外。

异常消息:

执行处理程序的子请求时出错 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.

谁能告诉我这里出了什么问题。谢谢!

>哎呀!!我的错误!实际上,我再次返回主视图,这就是为什么渲染不应该呈现的代码的原因。

现在,我已经将要通过 Ajax.BeginForm() 引用的视图代码添加到部分视图中。

我的开口:

您应该最好在部分视图上应用 Ajax 表单,因为从 控制器,当您返回视图时,必须渲染目标视图 再次(当你只需要通过 Content() 显示一个字符串时,没关系) 方法。

因此,通过 Ajax 表单刷新部分视图将是在我的简陋开放中使用 Ajax.BeginForm() 的理想方式。

最新更新