У меня есть модель, которая находится в PartialView _Model.cshtml, и у нее есть SubModel, которая имеет частичное представление _SubModel.cshtml.
Когда вы переключаете элемент в раскрывающемся списке, я отправляю Ajax-вызов для перезагрузки SubModel с соответствующими данными по умолчанию. Вызов ajax возвращает допустимую подмодель, и эта часть все работает. Страница выглядит правильно, содержит правильные данные, вы можете редактировать ее и т. Д. При сохранении (расположенном в BaseModel) модель доступна в обратной передаче, но никакая информация о SubModel недоступна.
Пример
public class SubModel {
public int Id {get;set;}
}
public class Model {
public string ModelType {get;set;}
public SubModel Details {get;set;}
}
Посмотреть пример
@Html.Kendo().DropDownListFor(m=> m.ModelType).BindTo( Model.AvailableModelTypes)
<div id="subModelPartial">
@Html.PartialFor(m => m.Details, "~/Features/_SubModel.cshtml")
</div>
/// More page stuff....
<script>
$(function(){
$('#@(Html.IdFor(m=> m.ModelType))').change(function(){
var url = "@Url.Action("GetSubModel", "Model")";
var query { ... }; // query data.
$('#subModelPartial').load(url, query);
});
});
</script>
Пример контроллера
[HttpPost]
[Route("GetSubModel")]
public async Task<ActionResult> GetSubModel( Query query )
{
var subModel = await GetSubModel(query);
return PartialView("_SubModel.cshtml", subModel ?? new SubModel());
}
Когда я сохраняю, Модель полностью заполняется, но у объекта Сведения все по умолчанию, даже если оно отображается заполненным на странице.
Что мне не хватает? Я хочу иметь возможность обновить модель на странице и сохранить ее со всем остальным?
Спасибо!