在MVC3中,我如何找到调用我的视图的控制器动作的名称?

8

我希望在视图中编写一些逻辑,这些逻辑依赖于调用视图的控制器操作的名称。有没有一种方法可以找出这个名称。

希望有人能帮助我。请注意,我使用的是MVC3。

3个回答

13

获取控制器的名称

@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue

获取操作的名称

@ViewContext.Controller.ValueProvider.GetValue("action").RawValue

我在这里发现了。


你确定不是指“获取操作的名称”吗? - Adrian Grigore

5
@ViewContext.RouteData.Values["Controller"]
@ViewContext.RouteData.Values["Action"]

虽然这种方法可以实现,但我建议将这些选项作为 ViewModel 的标志添加,并将其传递给 View。

3

ViewContext.RouteData.Values["action"] 可以使用,但是让视图决定这样的事情是不好的选择。您可以使用显示和编辑模板来生成不同的视图,然后让操作选择其视图。视图应该非常简单,并依赖于通过 ViewData 或其模型接收到的数据。最好让控制器决定如何区分某些视图和操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接