4

在使用 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");
    }

无法显示视图“结果”怎么办?

4

3 回答 3

6

您不能View从异步调用中返回 a。ajax 请求旨在避免执行整个页面循环。

POST如果你想退回一个新的,你应该做一个背部View

另一个选项是在 ajax 调用成功后进行回调并将 设置window.location为 newView以便页面GET对 new执行 a View

于 2013-05-03T14:08:33.563 回答
3

使用回调函数,一旦 AJAX 返回,该函数将重定向用户。

ajax(/*suff*/).success(callbackFuntion);

然后在你的回调中

function callbackFuntion(){

    window.location = "www.google.com";
}
于 2013-05-03T14:09:04.170 回答
0

在常见ASP.NET MVC的工作流中,视图与控制器相关联。因此,如果您想更改视图,HTML根据AJAX请求在浏览器中呈现不同的内容,只需将该请求的url路由到另一个controller. 表单控制器返回一个新的View(...).

可以看看 ASP.NET MVC Views Overview

如果这不是您要的,请澄清。

于 2013-05-03T14:09:34.810 回答