2011-08-04 188 views
1

檢索我有一個單頁有部分控制它稱爲PartialContactASP.Net MVC剃刀 - 寫在TempData的剃刀和控制

在重用這種控制,我想在PartialContact控制範圍內更改標題。即

 // change to Title1 
     @Html.EditorFor(model => Model.Contact1, "PartialContact") 
     // change to Title2 
     @Html.EditorFor(model => Model.Contact2, "PartialContact") 
     // change to Title3 
     @Html.EditorFor(model => Model.Contact3, "PartialContact") 

什麼是在Razor內傳遞標題文本的最佳方式? TempData的?

(我有多個不同的控制,我需要用藏漢做到這一點)

非常感謝

克里斯

+0

有人能寫出一個屬性的答案。但是如果你只是想要一個快捷方式,使用'ViewBag'。爲了更清潔的解決方案,請使用視圖模型即定義一個'ContactViewModel',它具有'Title'屬性,以及你想要公開的'Contact'屬性。然後改變'Contact1'.etc指向'ContactViewModel'。在您的控制器中,您可以在創建這些視圖模型時設置「標題」。 – user1122345

+0

當然,還有另一種方法可以做到這一點,而不是創建另一個裝飾班? - 我只想換個標題? - 現在將嘗試ViewBag。如果這是唯一的方式,我想我會這樣做 - 只是希望有另一種方式,我可以通過一個關鍵/價值包和模型的控制。感謝您的回答 –

回答

1

使用的ViewDataDictionary傳遞的價值,例如

@{ 
    ViewData["Title"] = "Blah"; 
    Html.EditorFor(model => Model.Contact1, "PartialControl", ViewData); 
} 

然後訪問它在部分與@ViewData["Title"]

+0

謝謝我使用ViewContext.TempData修復了它 - ViewContext.TempData [「Heading」] =「Whatever」; –

+0

夠公平的。它們幾乎是可以互換的,儘管TempData會持續兩個連續的請求,所以請牢記這一點。 – link664