デフォルトのHomeControllerのViewbag.message
に値を設定し、それをShared/_Layout.cshtml
に正常に表示しました。
その後、別のTestControllerを追加しましたが、TestControllerビューで、Viewbag.message
がnullのようです。何が悪いのかわかりますか。
私が間違っている場合は訂正してください。私の理解から、Viewbag.Message
はどこからでも入手できるはずですか?
ViewBagは、C#4.0の新しい動的機能を利用する動的プロパティです。基本的に、これはViewDataのラッパーであり、コントローラーから対応するビューにデータを渡すためにも使用されます。
以下は、永続性のさまざまなメカニズムを示す要約表です。 クレジット:CodeProjectArticle
[HttpPost]
public ActionResult Index()
{
TempData["Message"] = "Success";
return RedirectToAction("Index");
}
public ActionResult Index()
{
ViewBag.Message=TempData["Message"];
return View();
}
//one controller to another controller you need to use seesion
//this is Home controller
[httpPost]
public actionresult Index()
{
session["Message"] = "Welcome to session tutorial";
return redirectToAction("Index","About");
}
//now pass to the another About controller
[httpPost]
public actionresult About()
{
viewbag. message = session["Message"]
return view();
}