首先,这与Collection of complex child objects in Asp.Net MVC 3 application?非常相似,但实际上没有一个答案对我完全回答。
我有一个Poll模型,其中包含一个PollItem模型列表。我的观点是创建新的民意调查,因此传入视图的模型完全是空的。因此,基本轮询信息有文本框,然后是用户可以添加/删除任意数量的轮询项的下半部分。我需要以某种方式将那些poll项目文本框绑定到PollItems列表。
@using (Html.BeginForm("CreatePoll", "Polls", FormMethod.Post, new { enctype = "multipart/form-data", id = "createPollForm", @class = "cmxform group" }))
{
@Html.TextBoxFor(x => x.Question, new { @class = "title-input full-width prominent", placeholder = "Enter Question Here" })
<ul class="poll-info">
<li>
<p><label>Poll Opens</label></p>
@Html.TextBoxFor(x => x.OpeningDate, new { id = "openingDatePicker" })
</li>
<li>
<p><label>Poll Closes</label></p>
@Html.TextBoxFor(x => x.ClosingDate, new { id = "closingDatePicker" })
</li>
</ul>
<section class="description">
<p><label>Description</label></p>
@Html.TextAreaFor(x => x.Description, new { @class = "full-width", placeholder = "Enter a more detailed description of the poll here." })
</section>
<a class="button"><i class="ico"></i> Attach an object</a>
<section class="module-questions">
<ul>
</ul>
<span class="button link" onclick="addAnswer()"><i class="ico"></i> Add Answer</span>
</section>
}
addAnswer()函数将列表项中的新文本框附加到无序列表中,该列表将绑定到PollItem.Description,这些列表保存在作为列表的Poll.PollItems中。除了描述之外,PollItem中可能还会有一些其他元素。
我甚至不知道从哪里开始,因为我不知道如何绑定动态添加和删除的文本框。
答案 0 :(得分:1)
点击此处:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx和http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
答案 1 :(得分:0)
我建议您查看following blog post,其中说明了如何实现这一目标。它演示了自定义Html.BeginCollectionItem
助手的用法,该助手负责为动态添加和删除的输入字段生成专有名称。