0

次のような連絡先情報があります。

Name: input    Email : input
Add More

ユーザーが別の名前と電子メールを追加したい場合は、[さらに追加] をクリックすると、別の名前と電子メールの入力ボックスのセットが表示されます。

コントローラー側で MVC を使用してこれをどのように処理しますか?

public ActionResult Process(IEnumerable<Contact> contacts){
.... ???

またはモデルバインディングが必要な場合、どうすればこれを行うことができますか?モデルはどうすればよいですか?

4

2 に答える 2

1

フィールドの作成方法など、多くの要因によって異なります。これはかなり一般的な質問です。

個人的には、json 文字列を作成してサーバーに送信することでこれを行います。

もう 1 つの方法は、モデル バインドがコレクションであることを認識できるように、特定の方法でクライアント上に要素を構築することです。

同様の質問で私を助けてくれた@Shyjuを引用します。

新しく追加された動的要素でモデル バインディングが機能するようにするには、要素の命名規則に従う必要があります。

トリックは、html 要素の id プロパティ値をこの形式に保つことです。CollectionName_ItemIndex__PropertyName

この形式でプロパティ値に名前を付けます

コレクション名[アイテムインデックス].プロパティ名

于 2013-06-12T10:58:40.673 に答える
0

私はいくつかを使用すると思います

IList<Contact> Contacts; as a ViewModel. 

フォームを送信した後、何らかのアクションがそれを処理します。ビューの観点からは、jQuery の append() メソッドを使用して次の連絡先行を追加し、Web サイトを完全に更新しないようにします。

于 2013-06-12T11:01:33.693 に答える