Ответ 1
RawValue
- это object
, поэтому RawValue == "..."
вызывает Object.op_Equality
, который сравнивается по ссылке, а не по значению.
Вызов ViewContext.RouteData.GetRequiredString("action")
Каков правильный способ получить имя действия, возвращающего представление в MVC3?
Я использую ViewContext.Controller.ValueProvider.GetValue("action").RawValue
, чтобы вернуть имя Action (Method), которое создает View в MVC3. Я возвращаю это в частичном представлении, которое включено в представление, возвращенное действием.
Он отлично работает для индекса, но когда я пытаюсь использовать его для другого имени метода, он всегда вычисляет значение false.
В ближайшем окне я получаю следующие результаты:
ViewContext.Controller.ValueProvider.GetValue("action").RawValue
"Edit"
ViewContext.Controller.ValueProvider.GetValue("action").RawValue == "Edit"
false
Это очень сбивает с толку, потому что первый оператор оценивает строку со значением "Изменить", а при сравнении этого со строкой "Правка" возвращает false?
Bizarre...
RawValue
- это object
, поэтому RawValue == "..."
вызывает Object.op_Equality
, который сравнивается по ссылке, а не по значению.
Вызов ViewContext.RouteData.GetRequiredString("action")