【发布时间】:2011-06-06 07:21:36
【问题描述】:
在其他语言(PHP/Python)中,我习惯于创建一个代表给定 HTML 页面布局的类。这些类可以有无限数量的属性和动态特性,例如导航(多级)、错误消息、信息消息、页脚文本等......这些项目中的大多数都有默认值,但可能会在每页上被覆盖等级。例如:
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 Razor (VB) 中实现类似的功能?
到目前为止,我已经了解了如何使用ViewData 将各种数据位传递给视图。此外,我一直在使用强类型视图。
坦率地说,我不确定谁的工作是拥有这个逻辑、控制器或视图(或者是否有一个模型应该在某个地方)。
以下是我正在拍摄的内容的摘要:
- 一个用于初始化布局默认值的地方(如第一层导航等...)
- 强类型属性,例如
Public Readonly Property Nav1 as List(of NavElement) - 以及一个渲染这些布局元素的地方(我假设
_Layout.vbhtml)
请原谅这篇文章的各处...我试图找出在一个新的(Razor)和对我来说都是新的平台(ASP.Net MVC)上完成的“正确方法” )。
欢迎大家多多指教!
【问题讨论】:
标签: asp.net vb.net asp.net-mvc-3 razor