2011-03-28 84 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