ASP.NET MVC Web アプリケーションには、かなり単純な (説明するための) 要件があります。
任意のページで、前のページで発生したイベントに基づいてメッセージを表示できます。メッセージには、ユーザーがフォーム送信で入力した情報などの動的コンテンツが含まれる場合があります。
これに似た...
このアプローチは、POST-REDIRECT-GETシナリオで機能する必要があります。
ユーザーがアプリケーションで 2 つのブラウザー タブ (セッション状態を共有する) を開いている場合、メッセージは関連するイベントが発生したタブにのみ表示されます。
例えば:
フィードバック フォームを送信した後、ユーザーに感謝するメッセージ (名前)
ログイン時に、アプリケーションに最後にログインした日時をユーザーに通知するメッセージ
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
でもう少し詳しく説明しています。興味深いことに、作成者は、代わりにカスタム HTTP ヘッダーを使用することも提案しています。興味深いアイデアですが、 POST-REDIRECT-GET では機能しません。
優先オプションを使用しTempData
ていますか、それとも「より良い」代替手段がありますか? (例えば、より強く型付けされたもの)