Не удается добавить атрибут ModelBinder в свойство входной модели

Я хочу указать механизм связывания модели, который будет использоваться для свойства моей входной модели.

public class SendEmailInput
{
    [Required, EmailAddress]
    public string From { get; set; }
    [Required]
    public string To { get; set; }
    [Required]
    public string Subject { get; set; }
    [Required, ModelBinder(typeof(RadEditorModelBinder))]
    public string Body { get; set; }
}

Однако атрибут ModelBinderAttribute нельзя применить к свойствам. Это кажется глупым, поскольку я могу применить его к параметрам метода. Что я должен сделать, чтобы обойти это ограничение?

2 ответа

Вы, вероятно, должны реализовать свой собственный PropertyBinder как здесь: MVC Property Binder

Желая указать, какое связующее для моделей использовать, вы намерены иметь возможность смешивать и повторно использовать существующую логику связующих для моделей? Если это так, вы, вероятно, можете объединить свою логику в самом пользовательском связывателе (я предполагаю, что ваш "RadEditorModelBinder"). Таким образом, вы используете 1 связыватель модели, но сам связыватель модели использует разные методы, основанные на входящих свойствах.

Как вы думаете, это будет хорошей альтернативой для вас? Если это так, см. Этот пост для дальнейшего обсуждения.

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