2009-02-01 184 views
1

我有以下情形:後/重定向/獲取:重定向到特定路徑

我有一個編輯頁面,可以從不同的頁面調用。這些頁面可以是當前實體的詳細視圖,也可以是實體的列表視圖(在路徑中有或沒有搜索)。

如何使用MVC框架乾淨地重定向到原始調用頁面?當然,我可以簡單地通過將HttpContext.Request.Url值保存在我的TempData中,但在我眼中(或者,鼻子)傳遞這種氣味。它的代碼級別低於其他代碼。

有沒有辦法在控制器上下文中獲取上一頁的路由值?如果我有這個,我可以暫時存儲並將其傳遞給重定向。

回答

2

Do not use TempData when not redirecting.來自您的編輯頁面的一個AJAX請求,並且TempData將消失。

Tomas是正確的隱藏的元素或查詢字符串參數是要走的路。但請確保您清理提交的值。您不想在網絡上重定向任何舊網站;您需要確保您重定向的頁面是您網站的一部分。

+0

我最終選擇了這種方法,因爲沒有使用TempData的附加信息而接受了這個。 – 2009-02-08 21:02:18

1

您可以隨時擁有一個隱藏的表單元素,告訴控制器發佈表單時重定向的位置。當使用get請求時,可以以類似的方式使用查詢字符串。它可能不是最漂亮的解決方案,但它比信任可以輕易被瀏覽器更改(或省略)的httpreferrer或其他標頭要安全得多。