在我的视图模型中,我有一个对象列表。我迭代这些对象,并为每个对象创建控件。在下面的情况下,我想为每个对象显示一个文本框和一个按钮。当用户单击按钮时,会发布一个帖子,我可以将数据保存在我的控制器中。
在 UI 中,用户可以更改他们想要的表单,然后单击保存。
我的问题是模型发布到控制器时为空..
我的剃刀代码:
using (Html.BeginForm())
{
foreach (var contributor in Model.Contributor)
{
@Html.HiddenFor(model => contributor.Id)
<div class="formrow">
@Html.ValidationSummary(true)
</div>
<h2>@Html.TextRaw("AuthorInfo", "Author")</h2>
<div class="formrow">
@Html.EditorFor(model => contributor.FirstName)
<div class="formvalidation">
@Html.ValidationMessageFor(model => contributor.FirstName)
</div>
</div>
<div class="formrow right">
<input type="hidden" name="formsubmitted" value="true" />
<input type="submit" class="button" value="@Html.Text("ButtonText", "Save")" />
</div>
}
}
我的视图模型代码
public class ProfileModel
{
public string Message { get; set; }
public List<PublisherModel> Publisher { get; set; }
public List<ContributorModel> Contributor { get; set; }
public ContributorModel NewContributor { get; set; }
}
我的控制器代码
[HttpPost]
public ActionResult Mine(ProfileModel model, string newuser)
{
//
}
如何解决?
我想我必须以某种方式存储更改来扩展我的视图模型。但我真的看不出怎么做。
现在 ProfileModel 中的所有属性在到达控制器时都是空的。
有任何想法吗?