我有一个问题,我无法在我的视图中获得由用户填写的值到ViewModel中定义的列表。
我有视图,在某些字段将手动填充为:
S.No StyleName JobType Quantity
1 ABC Repair 2
2 XYZ Wash 3
我的ViewModel
如下:
public class IssueViewModel
{
public List<OrderItem> Items { get; set; }
}
我的OrderItem
定义如下
public class OrderItem
{
public int OrderItemId { get; set; }
public string StyleName { get; set; }
public string JobType{ get; set; }
public int Quantity { get; set; }
}
现在的问题是如何将此ViewModel列表链接到视图以获得我的Items
列表中的值保存在DB中。
如果我为StyleName, JobType和Quantity定义单独的列表,它的工作很好。在这种情况下,我的视图如下所示:
<table id="theTable">
<tr>
<th>Sr.No</th>
<th>Style Name</th>
<th>JobType</th>
<th>Quantity</th>
</tr>
<tr>
<td>1</td>
<td>
@Html.TextBoxFor(model => model.StyleName)
@*<input type = "text" style="border:0px;" value = "" />*@
</td>
<td>
@Html.TextBoxFor(model => model.JobType)
@*<input type = "text" style="border:0px;" value = "" />*@
</td>
<td>
@Html.TextBoxFor(model => model.Quantity)
@*<input type = "text" style="border:0px;" value = "" />*@
</td>
</tr>
</table>
如果我使用以上,我必须读取3个不同的循环来获取值。我知道这不是正确的做法。
我知道对于显示,我们使用for循环,但这里我需要接受由user填充的值。我为此搜索了很多,但没有找到任何解决方案。请建议。由于
为OrderItem
创建一个编辑器模板,其中每个属性都有文本框,然后在您的主视图中,仅使用Html.EditorForModel()
,它将根据模型中的每个属性的编辑器模板生成标记,如果属性是一个列表,则为该列表中的每个项目。你不需要在任何地方手动循环任何东西