new*_*guy 8 .net asp.net-mvc asp.net-mvc-areas asp.net-mvc-2
我想创建一个嵌套区域的项目结构.例如,我有一个"Home"区域,在这下面我想要"新闻"区域来处理它自己的路线注册,并且当路线指向"新闻"区域中的控制器时将正确查找视图.通过将"新闻"区域名称更改为"主页/新闻"而不是简单地"新闻",可以找到正确的视图.在主要的Global.asax.cs中,我实例化所有区域("Home"和"News")并单独注册它们,因为RegisterAllAreas()函数只找到一层深的区域(即它只找到并注册"Home" "地区".
有没有其他人尝试类似的东西?这是一个主要的黑客攻击还是一个稳定的长期解决方案?您提供的任何建议都非常感谢.
我相信使用控制器创建类似的东西不会有问题,因为它们是使用命名空间找到的。
问题出在观点上。
默认情况下,MVC 路由(通过 ViewEngine)仅使用 RouteData 集合中的 Area、Controller 和 View 值。
这是在 VirtualPathProviderViewEngine 中的虚拟 FindView 方法中实现的(并使用非虚拟 GetPath)。您必须重写 ViewEngine 中的 FindView 方法。
这不是一个非常大或复杂的代码量,但你最好的选择是浏览源代码并窥探周围,因为有一些缓存和其他一些东西......
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |