【发布时间】:2019-10-01 12:15:16
【问题描述】:
对于后请求,如果我使用的是局部视图,模型绑定似乎不起作用。
主视图的模型是 MainViewModel。
public class MainViewModel
{
ModelPart Model {get;set;}
}
public class ModelPart
{
Public string MyVariable {get; set;}
}
如果我将主视图模型传递给部分视图,则绑定成功,MyVariable 中的任何输入都可以在 Controller Post 方法中找到。
主页
@model TEST.MainViewModel
@using (Html.BeginForm(FormMethod.Post, new { data_ajax = "false", enctype = "multipart/form-data" }))
{
@Html.Partial("~/Areas/Views/Shared/_Input.cshtml", Model.Model)
}
部分
@model TEST.ModelPart
@Html.EditorFor(m => m.MyVariable)
这行得通!
如果我只将 ModelPart 传递给局部视图,则绑定不成功。
主页
@model TEST.MainViewModel
@using (Html.BeginForm(FormMethod.Post, new { data_ajax = "false", enctype = "multipart/form-data" }))
{
@Html.Partial("~/Areas/Views/Shared/_Input.cshtml", Model)
}
部分
@model MainViewModel
@Html.EditorFor(m => m.Model.MyVariable)
这不起作用。因为我想使用部分来重用输入表单,所以这个问题是我想解决的。 我是否必须手动绑定部分视图中的属性?另一种解决方法是使用 javascript 传递值,但无论如何我可以获得默认绑定来获取它吗?
【问题讨论】:
标签: asp.net-mvc razor model-view-controller binding