获取在MVC3中返回视图的Action名称的正确方法是什么?
我使用ViewContext.Controller.ValueProvider.GetValue("action").RawValue
返回Action(Method)的名称,该名称是在MVC3中创建View。我在Partial View中返回它,它包含在Action返回的视图中。
它适用于Index,但是,当我尝试将它用于另一个方法名称时,它总是计算为false。
在即时窗口中,我得到以下结果:
ViewContext.Controller.ValueProvider.GetValue("action").RawValue
"Edit"
ViewContext.Controller.ValueProvider.GetValue("action").RawValue == "Edit"
false
这是非常令人困惑的,因为第一个语句计算为值为“Edit”的字符串,而将其与字符串“Edit”进行比较则返回false?
...奇异
答案 0 :(得分:53)
RawValue
是object
,因此RawValue == "..."
调用Object.op_Equality
,按引用而非按值进行比较。
致电ViewContext.RouteData.GetRequiredString("action")