Невозможно добавить атрибут 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; }
}

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


person Andrew Davey    schedule 01.01.2010    source источник
comment
блин! Я пошел и реорганизовал вещи, ожидая, что у меня это получится (у меня есть модель, которая иногда связана со сложным связывателем моделей, а иногда и с JSON)   -  person Simon_Weaver    schedule 13.01.2013


Ответы (2)


Вероятно, вам придется реализовать свой собственный PropertyBinder, как здесь: Связывание свойств MVC

person rafek    schedule 22.10.2012

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

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

person Chris Melinn    schedule 03.01.2010