在這種情況下,我有兩個頁面,在該崗位方法首先我回到了第二的視圖/視圖模型像這樣:現在MVC模型綁定,初始模型缺少
[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);
}
,在這種情況下,第2頁從(點1)正確呈現上面從GrabDataMethod傳入的所有值。但是,當我爲頁2 POST時,我在(點2)收到的Page2模型沒有任何原始條目,例如沒有被Page2直接修改的所有東西都是null或默認的(事實上,post方法中的模型似乎完全是一個新模型)。我暫時做了一個可怕的解決方法,但我需要一個適當的解決方法,是否有任何理由會發生這種情況?
第二頁查看代碼
@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>
}
什麼是Page1Model? Page2Model與Page1Model相同嗎?如果您將不同的模型發佈到同一個動作,這將無法正確綁定。 – Fals
@Fals我不清楚所涉及的兩個操作,爲有希望的清晰度做了更新 –
您是否也有查看示例代碼發佈到Page2操作? – Kunukn