0

所以我有一个收入声明的复杂表格。

它将为与 IncomeDeclaration 相关的每个 Activity 显示一个文本字段 GrossIncome ......这一切都在服务器上完成并且工作得很好......问题是。用户还应该能够即时添加活动.. 通过 javascript... 所以当用户单击“添加活动”时,下拉菜单和文本字段必须附加到活动列表的底部...这是我到目前为止所得到的

<tbody id="activities">
            @Html.EditorFor(model => model.income.EconomicActivityIncomeDeclarations)

            </tbody>
        </table>
        <a href="#" id="add_activity">Agregar Otra Actividad</a>

    </fieldset>

    <script type="text/javascript">
        $("#add_activity").click(function () {

            $.getJSON('/IncomeDeclarations/GetEconomicActivities', function (data) {
                var select = new Select();
                var data = new Array();

                for (var i = 0; i < data.length; i++) {
                    var option = new Option(data[i]["name"], data[i]["i"])
                    //should do something here
                }


                //should call the template and append to #activities
            });
        });
</script>


    <script id="template" type="text/x-jquery-tmpl">
    <tr>
        <td><select name="income.EconomicActivityIncomeDeclarations[${SomeNumber}].EconomicActivityId">
        ${MyOptions}        
        </select></td>
        <td><input type="text" name="income.EconomicActivityIncomeDeclarations[${SomeNumber}].GrossIncome" /></td>>
    </tr>
</script>

}

select 和 text_field 的 name 属性是这个工作的关键......否则模型绑定将无法工作......我认为如果 SomeNumber 变量设置为 new Date.GetTime() 模型绑定应该可以正常工作。 ..

我实际上并不认为需要 ajax,但那是另一个主题。名单。

4

1 回答 1

0

请参阅此
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

于 2011-03-04T23:20:23.350 回答