Есть ли способ использовать несколько System.Web.Mvc.RemoteAttributes? Получение повторяющегося атрибута RemoteAttribute.

Мне нужно выполнить две отдельные проверки свойства модели представления. По-видимому, RemoteAttribute можно применять только один раз для каждого свойства. Возможно, это глупый вопрос, но кто-нибудь знает, как это обойти?

public class ForgotPasswordModel
{
    // Getting compiler error "Duplicate RemoteAttribute attribute"
    [Remote("CanFindEmail", "Account", ErrorMessageResourceName = "EmailNotFound", ErrorMessageResourceType = typeof(ValidationMessages))]
    [Remote("IsAccountVerified", "Account", ErrorMessageResourceName = "AccountByEmailNotVerified", ErrorMessageResourceType = typeof(ValidationMessages))]
    [Required(ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PropertyRequired")]
    [Display(ResourceType = typeof(Resx), Name = "PersonEmailAddress")]
    public string Email { get; set; }
}

person gabe    schedule 07.03.2011    source источник


Ответы (1)


Обойти это невозможно (поскольку RemoteAttribute не поддерживает несколько объявлений для каждого свойства) без переписывания того, как MVC обрабатывает удаленную проверку. Один атрибут Remote должен указывать на метод на сервере, который выполняет всю удаленную проверку. Вы должны агрегировать несколько типов проверки в этом методе сервера. Причина, по которой вам не нужно несколько удаленных атрибутов для каждого свойства, заключается в производительности, поскольку каждый дополнительный обратный вызов будет иметь накладные расходы.

person marcind    schedule 07.03.2011
comment
Это прискорбно, потому что мне нужно иметь определенные методы ошибок для двух проверок... - person gabe; 07.03.2011
comment
У вас всегда может быть один метод, который вызывает оба ваших метода проверки. - person marcind; 07.03.2011
comment
Ответы на возврат конкретных сообщений об ошибках даны здесь: stackoverflow.com/questions/6000495/ - person emragins; 08.09.2016