2010-01-01 1 views
2

Я хочу указать модельное связующее, которое будет использоваться для свойства моей модели ввода.Невозможно добавить атрибут 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 не может применяться к свойствам. Это кажется глупым, поскольку я могу применить его к параметрам метода. Что мне делать, чтобы обойти это ограничение?

+0

блин! Я пошел и реорганизовал вещи, ожидая, что смогу это сделать (у меня есть модель, которая иногда связана с сложной моделью, а иногда с JSON) –

ответ

0

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

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