【问题标题】:How can I find out the name of the controller action that called my view in MVC3?如何找出在 MVC3 中调用我的视图的控制器操作的名称?
【发布时间】:2011-11-23 03:01:52
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    获取控制器的名称

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

    获取动作的名称

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

    我发现here

    【讨论】:

    • 您确定不是指“获取操作的名称”?
    【解决方案2】:
    @ViewContext.RouteData.Values["Controller"]
    @ViewContext.RouteData.Values["Action"]
    

    虽然这可行,但我建议它有点不雅。就我个人而言,我会将这些选项作为标志添加到 ViewModel 并将其传递给我的 View。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 1970-01-01
        • 2012-06-26
        • 1970-01-01
        相关资源
        最近更新 更多