我目前正在處理一個數據列表,我需要在一個視圖中顯示一個列表並顯示每個項目可執行的相應操作,如編輯它們或刪除它們。對於這個版本來說,承認它是一個特定的視圖是沒有問題的。我的問題是當我想刪除一個項目,我有兩個選擇在後期的方法。在Post方法和ViewBag抑制MVC3 RedirectToAction
//Call directly the list
[HttpPost]
[Authorize]
public ActionResult Delete(int itemId)
{
// logic to delete an item
ViewBag.Error = ""; // The result of the execution
return List();
}
這種解決方案的一點是,URL不再是一樣的第一個:... /名單,這是... /立即刪除,我不覺得這是解決大,其他的解決方案是重定向到動作,現在url是好的,但viewBag中的錯誤消息不再可見,你們有沒有更好的主意。
不錯的建議在控制器中設置ViewBag.Error = TempData [「Error」],以便視圖不必關心這個細節。 – 2012-04-12 13:19:25
是的,我曾經在視圖本身中擁有它,但是在視圖中我有很多邏輯處理要查看的變量。我使用控制器來獲取所有必要的信息並將其傳遞給視圖。 – Joshua 2012-04-12 13:21:13
非常感謝約書亞的答案,它工作正常,並感謝閱讀資源。 – Oflocet 2012-04-12 13:45:15