RemoteAttribute в viewmodel и ActionNameAttribute в соответствующем методе действия (MVC3)
Я только что обнаружил, что удаленная проверка с использованием RemoteAttribute не будет работать, если только:
- Метод действия для удаленной проверки не имеет атрибута [ActionName] или
- Метод действия для удаленной проверки имеет атрибут [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.