ユーザーがエントリを追加できるテーブルがあり、ユーザーが完了したら、別のエントリを追加できます。
エントリを追加した後、再度削除できます。ここで問題が発生します。ここに例があります
アクション:
Public ActionResult Submit(List<String> Names)
{
//DO STUFF
}
エントリを追加すると、前のエントリのインデックスが取得され、隠しフィールドが追加されるため、最終的には次のようになります。
HTML:
<input type="hidden" name='Names[0]' value='John'/>
<input type='hidden' name='Names[1]' value='Peter' />
<input type='hidden' name='Names[2] value='David' />
これを送信すると、すべての名前が正しくマップされます。問題は、送信前に名前を追加した後、ユーザーが名前の 1 つを削除できることです。値が「Peter」の入力を削除すると、html は次のようになります。
削除後の HTML:
<input type="hidden" name='Names[0]' value='John'/>
<input type='hidden' name='Names[2] value='David' />
これが送信されると、値が「John」の入力のみがマップされます。
HTMLのすべてのインデックスをやり直すjquery関数をコーディングせずにこれを修正する方法を知っている人はいますか? バインディング、オーバーライドなどにサーバー側を追加できるソリューションを探しています。jquery を使用したくない理由は、そのような機能を備えた複数のページがあり、ページごとに実行するとかなり時間がかかるためです。
** * **編集* ** * ***
上記のコードは単なる例です。バインドしようとしているモデルの 1 つは次のようになります。
public class Product {
public string Code {get;set;}
public string Name {get;set;}
public int Quantity {get;set;}
public decimal Price {get;set;}
}
そして明らかに私のアクションで
public ActionResult Submit(List<namespace.Product> Products)
{
//do stuff
}