Вам может понадобиться пользовательский механизм связывания модели, если вы хотите изменить это поведение по умолчанию:
public class MyModelBinder : DefaultModelBinder
{
protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
{
// TODO: decide if you need to instantiate or not the model
// based on the context
if (!ShouldInstantiateModel)
{
return null;
}
return base.CreateModel(controllerContext, bindingContext, modelType);
}
}
и затем:
public ActionResult Index([ModelBinder(typeof(MyModelBinder))] Home document)
{
return View(new BaseViewModel<Home>(document, _repository));
}
или зарегистрировать его глобально в Application_Start
:
ModelBinders.Binders.Add(typeof(Home), new MyModelBinder());