我已在默认的HomeController中将值设置为Viewbag.message
,并在我的Shared/_Layout.cshtml
中成功显示。
之后我添加了另一个TestController,在TestController视图中,Viewbag.message
似乎为null。我可以知道它有什么问题。
如果我错了,请纠正我,根据我的理解Viewbag.Message
应该可以从所有地方获得?
答案 0 :(得分:25)
ViewBag是一个动态属性,它利用了C#4.0中的新动态功能。 基本上它是ViewData的包装器,也用于将数据从控制器传递到相应的视图。
下面是一个汇总表,显示了不同的持久性机制。 Credit:CodeProjectArticle
答案 1 :(得分:6)
[HttpPost]
public ActionResult Index()
{
TempData["Message"] = "Success";
return RedirectToAction("Index");
}
public ActionResult Index()
{
ViewBag.Message=TempData["Message"];
return View();
}
答案 2 :(得分:0)
//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();
}