在其他语言(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