MVC模型绑定,初始模型丢失
本文关键字:初始模型 模型 绑定 MVC | 更新日期: 2023-09-27 18:02:03
在本例中,我有两个页面,在第一个页面的post方法中,我返回第二个页面的视图/视图模型,如下所示:
[HTTPPost]
public Task<ActionResult> Page1(Page1Model model)
{
var Page2Model = GrabDataMethod(model);
return View("Page2", Page2Model); //Point 1
}
[HTTPPost]
public Task<ActionResult> Page2(Page2Model model //Point 2)
{
var updatedModel= RunFiltersMethod(model)
return View(updatedModel);
}
现在,在这种情况下,Page2从(点1)正确地呈现,所有的值都是从上面的GrabDataMethod传入的。然而,当我POST Page2的Page2Model我收到(点2)没有原始条目,例如,一切没有直接修改的Page2本身是空的或默认的(事实上,似乎从POST方法的模型是一个新的模型完全)。我暂时做了一个可怕的工作,但我需要一个适当的修复,有什么原因会发生这种情况吗?
Page2查看代码
@model Mvc2013.Models.Page2Model
@using (Html.BeginForm("Page2", "Controller"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true)
<div class="row">
<div class="col-md-12">
@Html.Kendo().Chart(<!-- code removed, this is working -->)
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="col-md-8">
@Html.LabelFor(model => model.Prop1, new { @class = "control-label" })
</div>
<div class="col-md-4">
@Html.EditorFor(model => model.Prop1, new { @class = "control-label" })
@Html.ValidationMessageFor(model => model.Prop1)
</div>
</div>
<div class="col-md-3">
<div class="col-md-8">
@Html.LabelFor(model => model.Prop2, new { @class = "control-label" })
</div>
<div class="col-md-4">
@Html.EditorFor(model => model.Prop2, new { @class = "control-label"})
@Html.ValidationMessageFor(model => model.Prop2)
</div>
</div>
</div>
<!-- This carries on similarly for lots more attributes -->
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
在Beginform中,你应该添加@Html.HiddenFor(model => model.Something)
,其中Something是你想要回发的属性。