如何找出在MVC3中调用我的视图的控制器操作的名称?

时间:2011-05-16 13:23:21

标签: asp.net-mvc asp.net-mvc-3

我想在我的视图中编写一些逻辑,这取决于用于调用视图的控制器操作的名称。有没有办法可以找到这个名字。

希望有人可以帮助我。请注意,它是我正在使用的MVC3。

3 个答案:

答案 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或其模型接收的数据。最好让控制器决定将某些观点与行动区别开来