在View中获取Controller'

本文关键字:Controller 获取 View | 更新日期: 2023-09-27 18:09:30

获取MVC3中返回视图的动作名称的正确方法是什么?

我使用ViewContext.Controller.ValueProvider.GetValue("action").RawValue返回动作(方法)的名称,这是在MVC3中创建视图。我在一个局部视图中返回它,它包含在Action返回的视图中。

它可以很好地用于Index,但是,当我试图将它用于另一个方法名时,它总是计算为false。

在即时窗口中,我得到以下结果:

ViewContext.Controller.ValueProvider.GetValue("action").RawValue
"Edit"
ViewContext.Controller.ValueProvider.GetValue("action").RawValue == "Edit"
false

这是非常令人困惑的,因为第一个语句计算为值为"编辑"的字符串,而将其与字符串"编辑"进行比较返回false?

奇怪…

在View中获取Controller'

RawValue是一个object,因此RawValue == "..."调用Object.op_Equality,它们通过引用而不是通过值进行比较。

Call ViewContext.RouteData.GetRequiredString("action")