2013-05-03 105 views
4

與jQuery的異步調用後,如何返回一個particolar視圖?AJAX調用後的返回視圖

這個手機號碼的觀點:

<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

這打破了AJAX的目的。 – SLaks 2013-05-03 14:06:31

回答

6

您不能從異步調用返回View。 ajax請求旨在避免執行整個頁面循環。

如果你想要返回新的View,你應該只是做一個POST回來。

另一個選項是有根據的Ajax調用成功的回調並設置window.locationView所以頁面做了GETView

3

使用回調函數,一旦返回AJAX就會重定向用戶。

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

,然後在回調

function callbackFuntion(){ 

    window.location = "www.google.com"; 
} 
0

在共同ASP.NET MVC worklfow一個視圖連接到控制器。因此,如果您想要更改視圖,要根據AJAX請求在瀏覽器中呈現不同的HTML內容,只需將該請求的url路由到另一個controller即可。表格控制器返回新的View(...)

會對ASP.NET MVC Views Overview

看看如果這是你不問什麼,請澄清。