2013-01-21 48 views
0

後視圖我Ajax調用NameController\Actionasp.net返回Ajax調用

在這次行動我返回ActionResult - 一個View(model)

有沒有什麼辦法可以將客戶端重定向到返回的看法?

現在我看到這個觀點只在fiddeler(如返回的內容)

+2

了window.location可以做的伎倆,但你必須返回一個網址,而不是網頁的.. – VoidMain

+0

你能展示你的代碼嗎? – ken2k

回答

0

有沒有什麼辦法可以將客戶端重定向到返回的看法?

當然,但爲什麼你在這種情況下使用AJAX? AJAX的重點是保持在同一頁面上,避免重新加載整個HTML。

但是,如果你想你可以做到這一點。例如,您可以讓控制器操作有條件地返回包含要重定向到的目標url的JSON結果。然後在AJAX調用的成功回調中使用window.location.href在客戶端上執行重定向。

讓我們舉例說明:

[HttpPost] 
public ActionResult MyAction() 
{ 
    if (SomeCondition) 
    { 
     return PartialView(model); 
    } 
    return Json(new { redirectTo = Url.Action("TargetAction", "TargetController") }); 
} 

,然後你的AJAX成功回調中:

success: function(result) { 
    if (result.redirectTo) { 
     // the server returned a JSON result => let's redirect to the target url 
     window.location.href = result.redirectTo; 
    } else { 
     // The server returned a partial view => let's update some portion of the DOM 
     $('#result').html(result); 
    } 
}