所以我有一个收入声明的复杂表格。
它将为与 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,但那是另一个主题。名单。