我有一个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对象的一切都是默认的,即使它显示在页面上填充。
我想念的是什么?我希望能够在页面上更新模型并将其保存在其他所有内容中吗?
谢谢!