Могу ли я зарегистрировать пользовательскую модель Binder где-то, кроме Global.Asax?

StackOverflow https://stackoverflow.com/questions/3041242

  •  27-09-2019
  •  | 
  •  

Вопрос

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

Ты сможешь либо Поместите эту пользовательскую модель Binder, отвечаю за все ваши даты, зарегистрировав его в Global.Asax

Можно ли сделать эти регистрации в меньшем объеме системы контроллера? Если это так, есть ли какие-либо причина, чтобы избежать этого за пределами Global.Asax MVCApplication (например, причины производительности)?

Это было полезно?

Решение

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

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

Хотя это было не совсем то, что я искал, он еще более специфичен, чем регистрируя его для метода контроллера или контроллера.

Обновлять

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

public ActionResult SomeMethod([ModelBinder(typeof(SomeEditorModelBinder))]SomeEditorModel model) { ... }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top