Jquery 在带有把手的mvc中显示对象列表

Jquery 在带有把手的mvc中显示对象列表,jquery,asp.net-mvc-4,mobile,handlebars.js,Jquery,Asp.net Mvc 4,Mobile,Handlebars.js,我有一个模型,它有一个对象列表作为它的属性之一,我试图找出如何让它们正确发布。这是一个使用MVC4的jQuery移动项目,但我正在试图弄清楚Handlebar是显示列表的方式,还是有一种使用html助手的方式 现在的情况是,用户将选择他们有多少个孩子,每个孩子需要有一个年龄下拉列表,如果他们是18岁或更大,则需要一个烟草使用复选框。我有两个类,Person和Child来封装这些数据,它们之间的唯一区别是年龄范围 以下是车把方法: <script type="text/x-handlebar

我有一个模型,它有一个对象列表作为它的属性之一,我试图找出如何让它们正确发布。这是一个使用MVC4的jQuery移动项目,但我正在试图弄清楚Handlebar是显示列表的方式,还是有一种使用html助手的方式

现在的情况是,用户将选择他们有多少个孩子,每个孩子需要有一个年龄下拉列表,如果他们是18岁或更大,则需要一个烟草使用复选框。我有两个类,Person和Child来封装这些数据,它们之间的唯一区别是年龄范围

以下是车把方法:

<script type="text/x-handlebars-template" id="ChildTemplate">

         <div class="childWrapper">
            <label for="Children[{{id}}].Age">Child Age:</label>
            <select name="Children[{{id}}].Age" id="Children[{{id}}].Age" class="childDropdown">
                <option>0</option>
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>10</option>
                <option>11</option>
                <option>12</option>
                <option>13</option>
                <option>14</option>
                <option>15</option>
                <option>16</option>
                <option>17</option>
                <option>18</option>
                <option>19</option>
                <option>20</option>
                <option>21</option>
                <option>22</option>
                <option>23</option>
                <option>24</option>
                <option>25</option>
            </select>

            <div class="childSmoker">
                <label for="Children[{{id}}].Smoker">Tobacco User?</label>
                <input type="checkbox" name="Children[{{id}}].Smoker" id="Children[{{id}}].Smoker" />
                <input type="hidden" name="Children[{{id}}].Smoker" value="false" />

            </div>
        </div>

    </script>

但是html助手不想使用把手,我无法构建它。关于采取的最佳方法有什么建议吗?谢谢。

我弄明白了。如果我在模板中使用不使用lambdas的helpers,它就可以工作。这是新的模板

<script type="text/x-handlebars-template" id="ChildTemplate">
    <div class="childWrapper">
        @Html.EditorFor(m => m.Children)
    </div>
</script>
<script type="text/x-handlebars-template" id="ChildTemplate">

     @Html.Label("p[{{id}}].Age")
    <select name="p[{{id}}].Age" id="p[{{id}}].Age">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
    <div>
        @Html.Label("p[{{id}}]].Smoker")
        @Html.CheckBox("p[{{id}}].Smoker")
    </div>

</script>

@Label(“p[{{id}].Age”)
1.
2.
3.
4.
@Label(“p[{{id}]].Smoker”)
@复选框(“p[{{id}].Smoker”)
只要我保持id的顺序,我就可以添加/删除任意数量的id。我的控制器方法接受一个
列表
,现在所有内容都已正确发布

    public Person Self  { get; set; }
    public Person Spouse { get; set; }
    public List<Child> Children { get; set; }
    public string County { get; set; }

    [Display(Name = "Coverage Begin Date:")]
    public virtual string CoverageDate { get; set; }

    [Display(Name = "Covered Members:")]
    public virtual string CoverageSelection { get; set; }


    public SelectList EffectiveDates { get; set; }


    public SelectList CoveredMembers { get; set; } 

    public SelectList Counties { get; set; }
@html.LabelFor(m => m.Children[{{id}}].Age)
@Html.DropDownListFor(m => m.Children[{{id}}].Age, Model.Children[{{id}}].Ages)
<script type="text/x-handlebars-template" id="ChildTemplate">

     @Html.Label("p[{{id}}].Age")
    <select name="p[{{id}}].Age" id="p[{{id}}].Age">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
    <div>
        @Html.Label("p[{{id}}]].Smoker")
        @Html.CheckBox("p[{{id}}].Smoker")
    </div>

</script>