MVC - после динамической частичной загрузки SubModel не обновляется для сохранения - PullRequest
0 голосов
/ 15 мая 2018

У меня есть модель, которая находится в 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()); 
}

Когда я сохраняю, Модель полностью заполняется, но у объекта Сведения все по умолчанию, даже если оно отображается заполненным на странице.

Что мне не хватает? Я хочу иметь возможность обновить модель на странице и сохранить ее со всем остальным?

Спасибо!

...