在其他語言(PHP/Python)中,我習慣於創建一個代表給定HTML頁面佈局的類。這些類可以具有無限數量的屬性和動態特性,例如導航(多級),錯誤消息,信息消息,頁腳文本等......這些項目中的大多數都有默認值,但可能會在每頁上覆蓋水平。例如:ASP.Net MVC 3 Razor:如何創建信息並將其傳遞給動態佈局
Layout = MainPage()
Layout.Title = "Google Image Search"
Layout.Nav1.Add("Google", "http://www.google.com", Selected=True)
Layout.Nav1.Add("Yahoo", "http://www.yahoo.com")
Layout.Nav1.Add("Bing", "http://www.bing.com")
Layout.Nav2.Add("Google Image Search", "http://......", Selected=True)
Layout.Nav2.Add("Google Shopping Search", "http://......")
Layout.Nav2.Add("Google Video Search", "http://......")
Layout.Nav2.Add("Google Web Search", "http://......")
,或者處理錯誤:
try:
# do something
except ValidationError as e:
Layout.Error.Add(e)
或PHP例子:
$Layout->Info[] = "Your changes have been saved!";
我的問題是:我該如何實現類似的功能集成到ASP.Net MVC 3剃鬚刀(VB)?
到目前爲止,我已經能夠看到如何使用ViewData
將各種數據位傳遞給視圖。另外,我一直在使用強類型視圖。
坦率地說,我不確定誰的工作是擁有這個邏輯,控制器或視圖(或者是否有應該在某處的模型)。
這裏是我所拍攝的內容摘要:
- 一個地方來初始化默認值的佈局(如導航的第一層,等...)
- 強類型屬性,如
Public Readonly Property Nav1 as List(of NavElement)
- 和一個地方,使這些佈局元素(我假設
_Layout.vbhtml
)
請原諒這裏,和那裏的這個post ...我試圖弄清楚它是在一個新的(Razor)和新的(ASP.Net MVC)平臺上完成的「正確的方式」。
一般建議非常歡迎!
感謝您覈實和澄清。 – gahooa 2011-01-14 15:01:38