我想在我的视图中编写一些逻辑,这取决于用于调用视图的控制器操作的名称。有没有办法可以找到这个名字。
希望有人可以帮助我。请注意,它是我正在使用的MVC3。
答案 0 :(得分:13)
获取控制器的名称
@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
获取操作的名称
@ViewContext.Controller.ValueProvider.GetValue("action").RawValue
我发现here。
答案 1 :(得分:5)
@ViewContext.RouteData.Values["Controller"]
@ViewContext.RouteData.Values["Action"]
虽然这有效,但我认为它有点不雅。我个人将这些选项作为标志添加到ViewModel并将其传递给我的View。
答案 2 :(得分:3)
ViewContext.RouteData.Values["action"]
,但让视图决定这样的事情是不好的选择。您可以使用显示和编辑器模板生成不同的视图,然后让操作选择其视图。视图应该非常简单,并且依赖于通过ViewData或其模型接收的数据。最好让控制器决定将某些观点与行动区别开来