Я могу зарегистрировать пользовательский образцовый редактор связей где-нибудь кроме Global.asax?

Было бы удобно ограничить объем пользовательского образцового редактора связей для просто определенного метода действия контроллера или его всего контроллера. Hanselman записал предложение, которое подразумевало альтернативные местоположения для пользовательской образцовой регистрации редактора связей, но никогда, казалось, не закончило мысль:

Можно или назначить этот Пользовательский Образцовый Редактор связей ответственным за весь DateTimes путем регистрации его в Global.asax

Действительно ли возможно сделать эту регистрацию в меньшем объеме системы контроллера? Если так, есть ли какая-либо причина постараться не делать так за пределами Global.asax MvcApplication (например, причины производительности)?

5
задан patridge 14 June 2010 в 21:56
поделиться

1 ответ

Когда я закрывал вкладки, которые я открыл для этого вопроса, до которого я не дошел, прежде чем сдаться, я нашел человека, у которого есть ответ . Вы можете назначить ModelBinderAttribute вашим моделям представления:

[ModelBinder(typeof(SomeEditorModelModelBinder))]
public class SomeEditorModel {
    // display model goes here
}
public class SomeEditorModelModelBinder : DefaultModelBinder {
    // custom model binder for said model goes here
}

Хотя это не совсем то, что я искал, он даже более конкретен, чем его регистрация для контроллера или метода контроллера.

Обновление

Благодаря комментарию Леви, указывающему на гораздо лучшее решение. Если вы используете объект с настраиваемым связывателем модели в методе действия MVC напрямую, вы можете просто украсить параметр этого метода свойством ModelBinder .

public ActionResult SomeMethod([ModelBinder(typeof(SomeEditorModelBinder))]SomeEditorModel model) { ... }
6
ответ дан 14 December 2019 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: