![]() |
1
6
ViewMasterPage具有ViewContext属性。viewContext包含RouteData。如果不是默认值,routedata应该有一个控制器名称和当前操作的条目。您可以在母版页的逻辑中使用这些来确定要突出显示哪些导航元素。 同样,如果使用部分视图进行导航,则可以通过ViewUserControl上的ViewContext属性访问RouteData。 编辑 我认为这不需要复杂。
事实上,我甚至可以将其重构为HTML扩展以使其更容易。结果发现该助手已经有了对视图上下文的引用,因此您甚至不需要确定视图中的当前控制器。请注意,我只显示一个签名,您可以根据需要添加其他签名来处理其他路由数据和HTML属性(需要合并这些属性)。
|
![]() |
2
3
好问题! 在过去,我通过检查控制器和操作的routedata值来解决这个问题。 但现在我用mvcontrib menubuilder来做这种工作。查看他们的示例代码以了解如何使用它。 |
![]() |
3
1
在page.master中给出以下内容:
在view users.aspx中:
所以你不必做任何奇怪的路线分析,或是匆匆忙忙地分析,或是拖延。您只需在母版页的标题中添加一个ContentPlaceholder,然后在每个视图中提供此内容占位符中的一些附加CSS定义,使页面看起来应该如何用于该特定视图。 |
![]() |
4
0
这应该从视图本身控制。 如果不想修改每个视图,可以创建用户视图控件(.ascx文件)并将其添加到母版页。 |