1

次の形式のフォームがあります。

  1. 私は最初の行です (テキストボックス) [送信ボタン]
  2. 私は 2 番目の行です (ラジオボタン) [送信ボタン]
  3. 私は 3 行目 (チェックボックス) [送信ボタン]
  4. 私は 4 行目です (ドロップダウン) [送信ボタン]
  5. 私は 5 行目 (テキスト ボックス) [送信ボタン]
  6. 私は 6 行目 (テキスト ボックス) [送信ボタン]
  7. 私は7行目です (ラジオボタン) [送信ボタン]

テキスト (例: I am four row) とコントロールの値がデータベースから読み込まれます。[送信] ボタンがそのコントロールの値 (例: 行 4、ドロップダウン値 == N/A) のみをサーバーに送信するようにしたいと思います。すべてのコントロールの値ではありません。

各行を Html.BeginForm でラップする必要がありますか、それともすべての行を 1 つの Html.BeginForm でラップできますか? そのようなことを処理するための最良の(またはさらに優れた)方法は何でしょうか。

注: 私は SO を検索しましたが、このような問題が議論されたことはありません。

4

4 に答える 4

1

Jquery を使用してこれを実行できると思います。まず、各行に個別のフォームを作成します。以下のコードを使用してみてください.. Jquery:

function SubmitForm(btn)
{
     var form = btn.serialize();
     $.post("your  URL here",form,function() {
         alert("Saved");
     });
}

HTML:

<form id='form1' >
 ...
 Other controls on your form
 ...
<input type="button" id="form1" onclick="SubmitForm(this)" />
</form>
于 2012-04-27T14:32:44.240 に答える
1

テーブルを構築するためにループを作成する必要があるように聞こえます..特定の要素タイプ(テキスト、ラジオ、チェックボックスなど)を配置することを決定するためにキーを押しているものに基づいて条件付きで行を作成し、それぞれ行はフォームタグでラップする必要があります。正しい要素を評価する必要があるため、それを使用して BeginForm を構築し、アクションにポストする場所を伝えることもできます。アクションが受け取りたいデータのみを受け取るように、要素タイプごとに異なるアクションにすることもできます。

于 2012-04-27T14:13:49.163 に答える
0

例:1。私は最初の行です:

<input type="text" value="@textValue" id="txtFirstRow" />
<input type="button" onclick="post('txtFirstRow');" />

Javascriptコード:

function post(name)
{
    var txt = document.getElementById(name).value;
    $.getJSON("/Controller/Action",
    {
        text: txt
    },
    function (data) {
        //returned result
    });
}
于 2012-04-27T14:24:10.753 に答える
0

まず、フォーム タグをネストすることはできません (ブラウザーはそれをサポートしていません)。

クリック時の input[type=submit] は、その親フォームでポストバック イベントをトリガーします。元。

<form action='/PostBackTo' onsubmit='DoSomething()'>
<input type='submit />
</form>

したがって、すべてのコントロールを独自のフォーム内にラップする必要があり、ポストバックする追加データは、フォーム内の入力タグまたは選択タグに存在する必要があります。

送信するたびに ID を返信したい場合は、次のように追加する必要があります。

<input type='hidden' value='@id' />

ポストバックに含めるには、すべてのフォームタグ内に。

このようにする場合は、javascript を使用して送信アクションをインターセプトし、AJAX 投稿を介してフォームのデータを送信することをお勧めします (「変更を保存」ボタンのようなものである場合)。

于 2012-04-27T14:16:54.933 に答える