【发布时间】:2011-11-23 03:01:52
【问题描述】:
我想将一些逻辑编码到我的视图中,这取决于用于调用视图的控制器操作的名称。有什么办法可以找出这个名字。
希望有人可以帮助我。请注意,我使用的是 MVC3。
【问题讨论】:
我想将一些逻辑编码到我的视图中,这取决于用于调用视图的控制器操作的名称。有什么办法可以找出这个名字。
希望有人可以帮助我。请注意,我使用的是 MVC3。
【问题讨论】:
获取控制器的名称
@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
获取动作的名称
@ViewContext.Controller.ValueProvider.GetValue("action").RawValue
我发现here。
【讨论】:
@ViewContext.RouteData.Values["Controller"]
@ViewContext.RouteData.Values["Action"]
虽然这可行,但我建议它有点不雅。就我个人而言,我会将这些选项作为标志添加到 ViewModel 并将其传递给我的 View。
【讨论】:
ViewContext.RouteData.Values["action"] 可以使用,但让视图决定这些事情是不好的选择。您可以使用显示和编辑器模板来生成不同的视图,然后让操作选择它的视图。视图应该非常简单,并且依赖于通过 ViewData 或其模型接收的数据。最好让控制器决定用动作区分某些视图等事情
【讨论】: