在我的視圖模型中,我有一個對象列表。我迭代這些對象,併爲它們中的每一個創建控件。在下面的情況下,我想向人們展示每個對象的文本框和按鈕。當用戶點擊按鈕時,會發布帖子,我可以將數據保存在我的控制器中。對於MVC 4中控件和提交表單(Html.BeginForm)的每個循環4
在用戶界面中,用戶可以更改他們想要的表單,然後單擊保存。
我的問題是,當它發佈到控制器的型號是空..
我的剃刀代碼:
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中的所有屬性在到達控制器時都爲空。
任何想法?
這還算空,如果你發佈字符串消息藏漢? – 2013-03-26 11:56:47
你可以發佈你的HTML爲'@ Html.EditorFor(model => contributor.FirstName)提供'' – 2013-03-26 12:04:17
Somethings不看正確的地方,VIEW中的模型是ContributorModel列表,但發佈的模型(HttpPost)是ProfileModel?它與您的編輯/觀看不一樣的模型類型! – Zeddy 2013-03-26 11:50:58