0

他の入力フィールドの中に 2 つのリスト ボックスを含むフォームがあります。ボタンをクリックすると、あるリストボックスから別のリストボックスにコンテンツ(リストボックスのオプション)を移動しています(左右またはその逆)。この例のように。サーバー上の両方のリストボックスのコンテンツが必要になりました。フォームの送信時に、すべてのオプションではなく、リストボックスで選択した値のみをサーバーに転送できます。だから私には2つのオプションがあります:

  1. コンテンツを左から右に転送するボタンのクリック イベントで、コンテンツをサーバーに送信する Ajax 呼び出しを行います。

  2. フォームを送信する前に、リストボックスのすべての値を隠しフィールドに入れて、フォームの送信時にサーバーでアクセスできるようにします

これらのどれが私の状況に適していますか?? 編集: 最初の方法を実装することの欠点は、ユーザーがリストボックス A から B にコンテンツを転送するたびに、サーバーへのトリップが Ajax 経由で行われることです。

4

2 に答える 2

0

ソースを再度クエリしてlistbox、postメソッドで選択されていない他の値を取得することもできます

于 2012-07-12T08:01:15.730 に答える
0

最初のページロードでリストボックスのすべてのコンテンツを送信し(可能であれば)、jqueryを使用してリスト間でアイテムを移動します(したがって、ajax呼び出しはもう必要ありません)

次の例のように、アイテムをサーバーに送り返します。

@using (Html.BeginForm()) {
@Html.TextBox("movies")
@Html.TextBox("movies")
@Html.TextBox("movies")
<input type=submit />
}

Html.TextBox ヘルパーを使用して 3 つの入力要素を作成しました。これらはすべて、次のように name 属性の値として movie で作成されます。

<input id="movies" name="movies" type="text" value="" />
<input id="movies" name="movies" type="text" value="" />
<input id="movies" name="movies" type="text" value="" />

リスト17-11に示すようなアクションメソッドでユーザーが入力した値を受け取ることができます。リスト17-11。アクション メソッドで複数のデータ項目を受け取る

[HttpPost]
public ViewResult Movies(List<string> movies) {
...

モデル バインダーは、ユーザーによって提供されたすべての値を検索し、それらを List で Movies アクション メソッドに渡します。バインダーは、さまざまなパラメーターの型をサポートできるほどスマートです。データを string[] として受け取るか、IList として受け取るかを選択できます。

Apress Pro ASP.NET MVC 3 Book より

于 2012-07-12T08:07:14.287 に答える