上顯示的消息一般的方法我有我的ASP.NET MVC Web應用程序相當簡單的(解釋)要求:爲
在任何頁面,能夠顯示基於一個消息事件發生在前一頁上。消息可以包括動態內容,例如用戶在表單提交中輸入的信息。
這種類似...
該方法必須POST-REDIRECT-GET情況下工作。
如果用戶在應用程序上有兩個打開的瀏覽器選項卡(共享會話狀態),則任何消息只應顯示在相關事件發生的選項卡中。
例如:
提交反饋形式,消息感謝用戶(通過名稱)
在登錄時,一個消息,當他們最後告訴用戶的日期/時間之後登錄到應用
我首先想到的是使用強類型的視圖以適當的模型(具有string
屬性)。但是,這意味着要改變每個現有的非強類型視圖以使用此模型,並更新所有現有模型以從此新模型繼承。
這似乎是矯枉過正。
一種替代方法是在消息存儲在TempData
:
// In my controller
TempData["Message"] = "Some kind of message";
// In my shared master view
@if (TempData["Message"] != null)
{
<div class="message">@TempData["Message"]</div>
}
使用TempData
被覆蓋在更詳細一點在this blog posting。有趣的是,作者還建議使用自定義HTTP頭作爲替代。一個有趣的想法,但does not work with POST-REDIRECT-GET。
正在使用TempData
的首選選項,還是有更好的選擇? (例如更強類型的東西)
如何將這項工作一個POST重定向消息得到什麼? –
@RichardEv你說得對,我想我錯過了這個要求。所以實際上你只是在尋找一種「帶副作用的GET」? – CodeCaster
(在這種情況下,它是[提交後重定向獲取(PRG)摘要頁]的副本(http://stackoverflow.com/questions/9775684/post-redirect-get-prg-summary-page-on提交)等)。 – CodeCaster