ajax调用后返回视图

时间:2013-05-03 14:05:19

标签: c# asp.net-mvc jquery razor

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

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

3 个答案:

答案 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

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