我試圖找到一種方式來編輯在我的數據庫中的條目,我的模型是這樣的:MVC C#的複雜模型編輯
public class ComplexModel {
public int id {get;set;}
public string Name {get;set;}
public List<Lines> FavoriteNumbers {get;set;}
}
public class Lines{
public int id {get ;set ;}
public string FavoriteLetter {get;set;}
}
我的觀點中有這樣一段列出輸入框
@model MvcApplication.Models.ComplexModel
@using(BeginForm()){
<fieldset>
<legend>Enter your name</legend>
@Html.EditorFor(model=>model.Name)
</fieldset>
@foreach (var item in Model.FavoriteNumber)
{
<fieldset>
<legend>Favorite number:</legend>
@Html.EditorFor(model=>item.FavoriteLetter)
</fieldset>
}
<input type="submit" value="Save">
}
這樣就可以編輯ComplexModel中的每一行嗎? 我試圖編輯,但在控制器中它說我的列表是空/空。
Foreach不是問題,它比for循環提供更好的可讀性。我看不出爲什麼你會建議改變它。這個問題很可能是由簡單的錯字造成的,就像普拉頓說的那樣。 – LambdaCruiser
我見過的所有列表模型綁定示例都使用了for循環,所以我只是習慣於這樣做。我不認爲你可以可靠地分辨出沒有索引的那條線。在這個例子中可能並不重要,但它可能是相關的。 – Trax72
經過一番測試,我傾向於說,根本不可能用foreach來做到這一點。除非列表包含一個簡單類型,如字符串,在這種情況下,您可以使用類似Html.TextBox(「FavoriteNumbers」,item.FavoriteLetter)。在這種情況下Html.EditorFor不起作用。 – Trax72