MVC - 动态部分加载后,SubModel不会更新以进行保存

时间:2018-05-15 15:50:23

标签: asp.net-mvc asp.net-mvc-partialview

我有一个PartialView _Model.cshtml中的Model,它有一个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()); 
}

当我保存模型完全填充时,但是Details对象的一切都是默认的,即使它显示在页面上填充。

我想念的是什么?我希望能够在页面上更新模型并将其保存在其他所有内容中吗?

谢谢!

0 个答案:

没有答案