RemoteAttribute в viewmodel и ActionNameAttribute в соответствующем методе действия (MVC3)

Я только что обнаружил, что удаленная проверка с использованием RemoteAttribute не будет работать, если только:

  1. Метод действия для удаленной проверки не имеет атрибута [ActionName] или
  2. Метод действия для удаленной проверки имеет атрибут [ActionName], который не учитывает регистр для фактического имени метода действия.

В следующем случае MVC создает исключение InvalidOperationException "URL-адрес для удаленной проверки не найден".

[ActionName("validate-my-widget")]
public virtual JsonResult ValidateMyWidget(string value1, string value2) 
{
...
}

Есть идеи почему? Я использую T4MVC, если это имеет значение.

1 ответ

Решение

Какое название действия вы указываете в Remote атрибут?

Если вы предоставляете имя вашего метода действия (в отличие от имени, объявленного в ActionName атрибут), то VirtualPathProvider сгенерирует URL-адрес, используя имя основного метода действия. Если вы укажете имя, объявленное в атрибуте ActionName, URL-адрес будет создан с использованием имени метода, объявленного в атрибуте ActionName.

Другие вопросы по тегам