所以我有一个复杂的形式,用于IncomeDeclaration。
它将显示与IncomeDeclaration相关的每个Activity的文本字段GrossIncome ...这一切都在服务器上完成并且工作正常....问题是。用户还应该能够动态添加活动...通过javascript ...所以当用户点击Add Activity时,一个Dropdown和一个textfield必须被追加到底部的活动列表......这是我到目前为止所得到的
<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属性是这个工作的关键...否则modelbinding不会工作......我认为如果SomeNumber变量设置为new Date.GetTime()模型Binding应该工作很好......
我实际上没有看到ajax的需要,但这是另一个话题..我只是想办法在没有ajax的情况下做到这一点...... 现在我想让模板工作,并将表单元素附加到列表的底部。
答案 0 :(得分:0)