2015-01-11 25 views
11

MVC3プロジェクトで作業していて、RedirectToActionを使用しているときにメッセージを表示します。 ViewBagを使用しましたが、動作していません。RedirectToActionが使用されたときに成功メッセージを表示する方法

誰か助けてください。

+0

は、あなたがしようとしているものを表示:

// User successfully logged in FlashMessage.Confirmation("You have been logged in as: {0}", user.Name); return RedirectToLocal(returnUrl); 

あなたのビューで、任意の以前のメッセージをキューに入れレンダリングするには、次のステートメントを含める:あなたは、単に次のようにRedirectToAction()を呼び出す前に、メッセージをキューに入れます。 –

答えて

28

あなたはあなたのビュー

@if (TempData["Success"] != null) 
{ 
<p class="alert alert-success" id="successMessage">@TempData["Success"]</p> 
} 

にしてTempDataコントローラプロパティは、この種を達成するために使用することができます

TempData["Success"] = "Added Successfully!"; 
return RedirectToAction("actionname", "controllername"); 
6

成功の後、あなたのコントローラ内のメッセージに

を表示するためにTempDataをを使用することができますの機能欠点は、バックグラウンドでセッションストレージを使用することです。つまり、Webファームで機能させるために余分な作業をしたり、最初にセッションを有効にする必要があります。

また、ショートメッセージを送信する必要がある場合のみ、Cookieを使用できます。これを行うには、改ざんを防止するためにクッキーを適切に保護する必要があります。 MachineKey.Protect()これを行うのを手助けすることができます。

私は同じ問題に直面し、FlashMessageというソリューションを作成しました。おそらく、これはあなたにいくつかの仕事を節約することができます。 NuGetでも入手できます。 FlashMessageを使用して

は簡単です。

@Html.RenderFlashMessages()