從我的角度來看,我通過$ .ajax發送了一個JSON對象到我的控制器以將其保存在數據庫中。 如果一切都成功了,我想重定向到另一個將顯示不同視圖的操作。
如果我使用以下代碼:
return RedirectToAction("CreatePage", "Survey", new {id = question.PageId});
執行前進到調查控制器返回一個視圖,但它沒有示出。
我讀過一些文章,說它不可能通過ajax重定向。
我至今使用的解決方案是通過JavaScript重定向這樣的:
success: function (ret) {
window.location.href = "/Survey/CreatePage/" + $("#PageId").val();
}
雖然這總是工作,有時我需要刷新CreatePage視圖顯示最近所做的更改。
有關如何更好地解決此問題的任何想法?
在此先感謝
我的第一個想法是爲什麼這是用Ajax完成的?是否曾經有過這樣的情況,在帖子後不會重定向?你提到它會在所有成功的情況下重定向,但是你可以處理重定向到錯誤頁面,或者在錯誤消息的同一頁面。在所有情況下都不會調用Ajax - 它是一種工具,只能在適當的時候使用。 – mccow002
您是否期待來自AJAX請求的HTML或JSON?我問的原因是,如果你接受JSON,你理論上可以爲每個AJAX JSON請求提供一個包裝器響應,這個響應具有一些常見的屬性,例如:.Success,.Message,.Data和.Redirect。你的JS可以評估AJAX發回的東西是否需要更新消息或者重定向。 –