2011-01-14 180 views

回答

1

您可以使用ViewBag來傳遞數據。

在你的控制器:在你

ViewBag.LayoutModel = myData; 

訪問佈局:

@ViewBag.LayoutModel 

它是一個動態的對象,所以你可以使用任何你想要的屬性名稱。

1

ViewBag方法是最簡單的。但是,如果您需要高級功能和類型功能,則還可以嘗試將該部分用公共控制器(部分視圖呈現相關部分)採用該部分視圖(如果該值可以獨立計算並且不需要來自其他控制器的輸入),並從_Layout上調用RenderPartial。
如果您想我可以給你一些關於它的詳細信息...

+2

是的,請給我們介紹一下它的一些詳細信息:] – cc0 2011-03-05 18:46:41

10

像往常一樣,通過創建一個視圖模型表示數據開始:

public class MyViewModel 
{ 
    public string SomeData { get; set; } 
} 

然後控制器將取數據從某處:

public class MyDataController: Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new MyViewModel 
     { 
      SomeData = "some data" 
     }; 
     return PartialView(model); 
    } 
} 

然後相應的視圖(~/Views/MyData/Index.cshtml)來表示數據:

@{ 
    Layout = null; 
} 
<h2>@Model.SomeData</h2> 

終於裏面你_Layout.cshtml某處有這樣的數據:

@Html.Action("index", "mydata") 
+0

這將意味着你必須手動添加這對每個視圖。有沒有辦法將數據傳遞給每個頁面的_layout.cshtml? – 2011-09-08 21:12:29