在使用jquery进行异步调用后,如何返回特定视图?
这是我的来电者观点:
<script type="text/javascript">
function Run() {
$.ajax({
type: "POST",
cache: false,
url: "/Home/Run",
data: $("#form_run").serializeArray(),
dataType: "json"
});
}
</script>
<form action="javascript:return true;" method="post" id="form_run">
<input type="text" id="nome" name="nome" />
<input type="text" id="cognome" name="cognome" />
<input type="submit" name="submit" value="Run" onclick="Run();" />
</form>
这是我的控制器动作:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Run(string nome, string cognome)
{
return View("Result");
}
无法显示视图“结果” 怎么样?
答案 0 :(得分:6)
您无法从异步调用返回View
。
ajax请求旨在避免执行整个页面循环。
如果您想要返回新的POST
,则应该执行View
。
另一个选项是在ajax调用成功后进行回调并将window.location
设置为新View
,以便页面对新{{1}进行GET
}}
答案 1 :(得分:3)
使用回调函数,该函数将在AJAX返回后重定向用户。
ajax(/*suff*/).success(callbackFuntion);
然后在你的回调中
function callbackFuntion(){
window.location = "www.google.com";
}
答案 2 :(得分:0)
在常见的ASP.NET MVC
工作台中,视图与控制器相关联。因此,如果您想要更改视图,根据HTML
请求在浏览器中呈现不同的AJAX
内容,只需按照该请求的 url 的方式进行操作即可路由到另一个controller
。表单 控制器返回一个新的View(...)
。
可以查看ASP.NET MVC Views Overview
如果这不是您所要求的,请澄清。