我有一个视图,添加元素到集合: 它给我添加了html元素,但是当我调用ActionResult时,Model.TagModelsis仍然是空的(开始时是空的)。动态添加项目到集合
<div id="tags_div">
<label id="add_tag">Hello</label>
@foreach (var item in Model.TagModels)
{
<div class="editor-field">
@Html.EditorFor(model => item.Name)
@Html.ValidationMessageFor(model => item.Name)
</div>
}</div>
<script type="text/javascript">
$(document).ready(function() {
var $newdiv1 = $('<div class="ui-button-text"><input class="text-box single-line" id="item_Name" name="item.Name" type="text" value="b" /><span class="field-validation-valid" data-valmsg-for="item.Name" data-valmsg-replace="true"></span></div>');
$("#add_tag").live("click", function() {
$(this).append($newdiv1);
return false;
});
});
</script>
这里是我的视图模型:
public class QuestionTagViewModel
{
public QuestionModel QuestionModel { get; set; }
//private List<TagModel> _tagModels=new List<TagModel>(){new TagModel(){Name = "a"},new TagModel(){Name = "b"}};
private List<TagModel> _tagModels = new List<TagModel>();
public List<TagModel> TagModels
{
get { return _tagModels; }
set { _tagModels = value; }
}
}
为什么没有对模型没有更新? 当我改变别人属性静态元素一切正常
编辑 要MHollis:
安东感谢您的回复:)
现在我有
<script type="text/javascript">
$(document).ready(function() {
$("#addItem").click(function() {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#tags_div").append(html); }
});
return false;
});
});
</script>
而且tags_div :
<div id="tags_div">
<label id="add_tag">Hello</label>
@Html.ActionLink("Add another...", "BlankEditorRow", null, new { id = "addItem" })
@foreach (var item in Model.TagModels)
{
<div class="editor-field">
@Html.EditorFor(model => item.Name)
</div>
}</div>
而且该PartialViewResult方法:
public PartialViewResult BlankEditorRow()
{
var x=PartialView("TagRow", new TagModel());
return x;
}
和局部视图:
@*@using Szamam.Models
@model TagModel
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>*@
<div class="editor-field">
<input class="text-box single-line" id="[0].Name" name="[0].Name" type="text" value="b" />
</div>
元素被添加,但是当外商投资企业的ActionResult,集合为空:/
所以应该有另外一个原因:/
,我不能同意你的看法。如果我的收藏在开始时有10个元素,那么他们都有ID“item_name”和名称“item.name” – user278618
我想引导你到这篇博客文章。 http://weblogs.asp.net/nmarun/archive/2010/03/13/asp-net-mvc-2-model-binding-for-a-collection.aspx – MHollis
伟大的MHollis!明天我会开始赏金,我会给你它:)有一个“错误”。当我第二次点击标签“Hello”时,我失去了添加元素:/期望的效果是添加下一个元素。您能纠正它吗? :) – user278618