Вы захотите создать собственное связующее для модели.
public class SomeModelBinder : IModelBinder {
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) {
ValueProviderResult value = bindingContext.ValueProvider.GetValue("id");
SomeModel model = new SomeModel() { Details = new Details() };
model.Details.Id = int.Parse(value.AttemptedValue);
//Or you can load the information from the database based on the Id, whatever you want.
return model;
}
}
Чтобы зарегистрировать ваше связующее, вы добавляете это к своему Application_Start()
ModelBinders.Binders.Add(typeof(SomeModel), new SomeModelBinder());
Ваш контроллер выглядит точно так же, как у вас выше. Это очень упрощенный пример, но самый простой способ сделать это. Я буду рад предоставить любую дополнительную помощь.