我遇到一个问题,我无法在我的视图中将用户填充的值填充到ViewModel中定义的List。
我有查看某些字段的位置将手动填写为:
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列表链接到View以将我的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循环,但在这里我需要接受用户填充的值。我搜索了很多,但没有找到任何解决方案。请指教。感谢
答案 0 :(得分:0)
为OrderItem
创建一个编辑器模板,其中每个属性都有文本框,然后在主视图中,只需使用Html.EditorForModel()
,它将根据每个属性的编辑器模板生成标记。模型,如果属性是列表,那么对于该列表中的每个项目。您无需在任何地方手动循环任何内容。