フォームにオブジェクトを動的に入力し、新しいフィールドを編集できるようにしてから、フォームを別のオブジェクト タイプの別のリストに送信しようとしています。
現在、これを行うために Ajax フォームを使用していますが、<label for=>
属性は他の属性と一緒に部分ビューの結果に送信されていません。
私のコントローラーの部分ビューの結果は次のとおりです。
[HttpPost]
public PartialViewResult AddToOrder(IList<OrderItemModel> form_list)
{
// do something
}
私の見解では、Ajax フォームは次のとおりです。
@using (Ajax.BeginForm("AddToOrder", "Order", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" }))
{
for (int i = 0; i < Model.Count; i++)
{
<tr>
<input type="hidden" name="form_list[@i].item_id" value="@Model[i].id" />
<td><label for="form_list[@i].description">@Model[i].description</label></td>
<td><label for="form_list[@i].price">@Model[i].price</label></td>
<td><input type="text" name="form_list[@i].quantity" value="0" /></td>
</tr>
}
<td><input type="submit" value="Add to order"/></td>
}
ラベルを<input type="hidden">
属性として複製すると、必要なすべてのフィールドが部分ビューの結果に送信されますが、Ajax フォームの代わりに jQuery を使用してこれを行うより良い方法はありますか?