C# HTM BeginCollectionItem只返回集合的第一项
我有以下问题: “礼物”集合作为参数传递给视图。 此集合中的每个项目都是模型类“Gift”中的一个对象。 该类中只有两个属性:name和price。 为了简单起见,我将类放在控制器中 这是行动方法:C# HTM BeginCollectionItem只返回集合的第一项,c#,asp.net,asp.net-mvc-5,begincollectionitem,C#,Asp.net,Asp.net Mvc 5,Begincollectionitem,我有以下问题: “礼物”集合作为参数传递给视图。 此集合中的每个项目都是模型类“Gift”中的一个对象。 该类中只有两个属性:name和price。 为了简单起见,我将类放在控制器中 这是行动方法: // GET: Order/CreateGift [HttpGet] public ActionResult CreateGift() { var initialData = new[] { new Gift{ Name
// GET: Order/CreateGift
[HttpGet]
public ActionResult CreateGift()
{
var initialData = new[]
{
new Gift{ Name = "Tricycle", Price = 69.95 },
new Gift{ Name = "PS4 game", Price = 29.99 },
new Gift{ Name = "Lazergun", Price = 49.99}
};
return View(initialData);
}
在视图上,由于BeginCollectionItem Html帮助程序,我可以动态地向集合添加新项
我的看法是:
@model IEnumerable
$(文档).ready(函数(){
$(“#添加项”)。单击(函数(){
$.ajax({
url:this.href,
cache:false,
成功:函数(html){$(“#editorRows”).append(html);}
});
返回false;
});
}); // end document.ready函数
礼品清单
你生日想要什么?
@使用(Html.BeginForm())
{
@foreach(模型中的var项目)
{
Html.RenderPartial(“GiftEditorRow”,item);
}
@ActionLink(“添加另一个…”,“BlankEditorRow”,null,new{id=“addItem”})
@*
*@
}
我发现了我的错误。
部分视图“GiftEditorRow”仍然包含以下内容:
@using (Html.BeginForm()){.....}
如果你删除这个,它应该会工作
这是我现在的部分观点:
@using (Html.BeginCollectionItem("gifts"))
{
<label>Name: </label>
@Html.TextBoxFor(Model => Model.Name);
<label>Price: </label>
@Html.TextBoxFor(Model => Model.Price, new { size = 4 });
<br />
}
@使用(Html.BeginCollectionItem(“礼物”))
{
姓名:
@TextBoxFor(Model=>Model.Name);
价格:
@TextBoxFor(Model=>Model.Price,新的{size=4});
}
现在我得到了所有的东西,而不是第一个