在视图中获取控制器的操作名称
问题描述:
获取在MVC3中返回视图的操作的名称的正确方法是什么?在视图中获取控制器的操作名称
我使用ViewContext.Controller.ValueProvider.GetValue("action").RawValue
返回Action(方法)的名称,该名称是在MVC3中创建视图。我在部分视图中返回此视图,该视图包含在由操作返回的视图中。
它适用于索引,但是,当我尝试将它用于另一个方法名称时,它总是计算为false。
在不久的窗口,我得到如下结果:
ViewContext.Controller.ValueProvider.GetValue("action").RawValue
"Edit"
ViewContext.Controller.ValueProvider.GetValue("action").RawValue == "Edit"
false
这是非常令人困惑,因为第一个语句评估与价值“编辑”的字符串,而比较这串“编辑”回报假?
离奇......
答
RawValue
是object
,所以RawValue == "..."
电话Object.op_Equality
,其通过引用而不是通过值comparse。
呼叫ViewContext.RouteData.GetRequiredString("action")
由于但这返回 一个对象引用是所必需的非静态字段,方法或属性“System.Web.Routing.RequestContext'RequestContext.RouteData.GetRequiredString(“动作”)。 RouteData.get' ' – Darbio
我的意思是'ViewContext'。 – SLaks
谢谢 - 这工作。 – Darbio