MVC3 ViewBag无法正常工作

时间:2011-03-28 17:08:51

标签: asp.net-mvc

在我的动作控制器中,我设置了以下内容:

    ViewBag.headerinfo = "ddddddddddd";
    ViewBag.Info = "abc";

在我的_Layout视图中,我有:

<div id="header_infobox"> 
    @ViewBag.Info  bbbbb
    @ViewBag.headerinfo
</div>

当谈到显示时,我看到的只是bbbbb。我无法理解为什么ViewBag不起作用。我希望有人能给我建议。

谢谢,

Melissa

3 个答案:

答案 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>