2011-03-28 52 views
0

在我的动作控制器我设置如下:MVC3 ViewBag不工作

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

在我_layout观点,我有:

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

当谈到dispaly所有我看到的是BBBBB。我无法理解为什么ViewBag不起作用。我希望有人能给我建议。

感谢,

梅丽莎

+2

你肯定在控制器中的代码已被执行?你可以把一个断点和检查? – fretje 2011-03-28 17:11:33

+1

我们将需要更多信息。我刚刚在一个新创建的mvc 3应用程序(您的确切代码)中尝试了它,并且我得到了'abc bbbbb ddddddddddd'。 – fretje 2011-03-28 17:18:26

+0

您可以发布整个操作控制器的代码吗? – 2011-03-28 18:56:24

回答

1

伟大工程(新创建ASP.NET MVC 3使用的是默认的Visual Studio模板应用):(~/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> 
+0

好工作Darin – 2011-06-24 10:04:17

4

我有同样的问题。对我而言,这是因为我正在返回RedirectToAction,而不仅仅是返回View。当你RedirectToAction时,它显然清除了ViewBag。

2

而是写作

return RedirectToAction("Index"); 

简单地写

return View(); 

RedirectToAction( “指数”),清除ViewBag