在我的动作控制器中,我设置了以下内容:
ViewBag.headerinfo = "ddddddddddd";
ViewBag.Info = "abc";
在我的_Layout视图中,我有:
<div id="header_infobox">
@ViewBag.Info bbbbb
@ViewBag.headerinfo
</div>
当谈到显示时,我看到的只是bbbbb。我无法理解为什么ViewBag不起作用。我希望有人能给我建议。
谢谢,
Melissa
答案 0 :(得分:4)
我遇到了同样的问题。对我来说,这是因为我正在返回RedirectToAction而不是仅返回View。当您使用RedirectToAction时,它显然会清除ViewBag。
答案 1 :(得分:2)
而不是写
return RedirectToAction("Index");
简单地写
return View();
RedirectToAction(“Index”),清除ViewBag
答案 2 :(得分:1)
效果很好(使用默认的Visual Studio模板新创建的ASP.NET MVC 3应用程序):
控制器(~/Controllers/HomeController.cs
):
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.headerinfo = "ddddddddddd";
ViewBag.Info = "abc";
return View();
}
}
查看(~/Views/Home/Index.cshtml
):
<div id="header_infobox">
@ViewBag.Info bbbbb
@ViewBag.headerinfo
</div>
生成的HTML(如浏览器视图源中所示):
<div id="header_infobox">
abc bbbbb
ddddddddddd
</div>