在视图模型列表对象中填充值



我有一个问题,我无法在我的视图中获得由用户填写的值到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(),它将根据模型中的每个属性的编辑器模板生成标记,如果属性是一个列表,则为该列表中的每个项目。你不需要在任何地方手动循环任何东西

最新更新