Я создал пользовательский MVC Model Binder, который вызывается для каждого HttpPost
, который приходит на сервер. Но не вызывается для запросов HttpGet
.
- Должно ли мое настраиваемое связующее устройство вызываться во время
GET
? Если да, то чего я пропустил? - Если нет, как написать собственный код обработки
QueryString
изGET
Request?
Здесь моя реализация...
public class CustomModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
// This only gets called for POST requests. But I need this code for GET requests.
}
}
Global.asax
protected void Application_Start()
{
ModelBinders.Binders.DefaultBinder = new CustomModelBinder();
//...
}
Я изучил эти решения, но они не совсем работают для того, что я ищу:
- Сохранение сложных типов через
TempData
- Использование связующего по умолчанию для создания сложных типов (
?Name=John&Surname=Doe
)
Замечание о ответе
Спасибо @Felipe за помощь. На всякий случай кто-то борется с этим, я узнал:
- Для
GET
запросов используется CAN. - Вы CAN используете
DefaultModelBinder
класс - Моя проблема заключалась в том, что метод действия ДОЛЖЕН иметь параметр (в противном случае прошивка модели пропускается для
GET
запросов, что имеет смысл, когда вы об этом думаете)