我有兩個類:MVC4 - 結合嵌套集合
public class Exercise
{
public Guid Id {get;set;}
public string Name {get;set;}
public List<ExerciseItem> Items {get;set;}
}
public class ExerciseItem
{
public Guid Id {get;set;}
public string Name {get;set;}
public string Content {get;set;}
}
我也有我爲創建運動對象視圖。在該視圖上有一個名爲「Add exercise item」的按鈕,我在其中動態調用ajax方法來爲ExerciseItem對象返回部分視圖。視圖正確返回。這種觀點如下:
@model Elang.Models.ExerciseItem
<div>
<input type="hidden" name="Items.Index" value="@Model.Id" />
<input type="hidden" id="[email protected](Model.Id)__Id" name="Items[@Model.Id].Id" value="@Model.Id" />
<input type="text" id="[email protected](Model.Id)__Content" name="Items[@Model.Id].Content" class="inputText"/>
</div>
的問題是,當我提交表單並調用我的「創建」的方法:
[HttpPost]
public ActionResult Create(Exercise exercise)
{
//add exercise to db
//HOWEVER!!
//exercise.Items is empty
}
我的項目是空的。我究竟做錯了什麼?有人能給我一些建議,我應該怎麼做才能解決這個問題?
使用上述EditorFor方法收集有一個缺點,我已經注意到了。想象一下,你想要列出你的項目,如:1. Item1 2. Item2,3.Item3。因此,你如何實現某種可用於計算物品的索引器? – 2013-09-23 11:34:03
@PiotrPtak - 有很多方法可以解決這個問題,我個人會簡單地確定索引號在模型中。如果你不能這樣做,那麼你仍然可以在for循環(不是foreach)或者其他六種方法中使用EditorFor。 – 2013-09-23 13:30:14