1

と を使用ASP.NET MVCしてjQueryいます。

たとえば、テキストボックスとデータを含む HTML テーブルがあります。

<form action="/Server/Test" method="post">

     <input type="text" id="ServiceAccount" />

     <table>
          <tr>
               <th>Heading 1</th>
               <th>Heading 2</th>
          </tr>
          <tr>
               <td>Cell data 1</td>
               <td>Cell data 2</td>
          </tr>
     </table>

</form>

上のテーブルはビュー モデルにバインドされていません。AJAX/JSON を介して入力されます。

テキスト ボックスの値とセル データをコントローラーのアクション メソッドにポストする必要があります。したがって、テキスト ボックスに 1234567 と入力した場合、この値をテーブルの内容と共にアクション メソッドにポストする必要があります。処理にもテーブルデータが必要です。これは可能ですか?サンプルが見つかりません。

私のアクションメソッドは次のようになります。

[HttpPost]
public ActionResult Test(string[] data)
{
     // Use the value Cell data 1
     // Use the value Cell data 2

     return View();
}

以下の私のコードを考えると、私のアクションメソッドにヒットしていません:

$('form').submit(function () {
     $.post('@Url.Action("Test", "Server")', $('form').serialize(), function (data) {
          alert('success');
     });
     return false;
});

私は自分が間違っていることを理解していません。

4

3 に答える 3

0

基本的に、フォームを送信すると、INPUT、Hidden、TextAra などのフォーム要素のみが送信され、div、table、span などではありません。

したがって、送信する場合は、テーブル データに隠しフィールドを使用してください。

または、より良い方法は、テーブル データをループし、JSON を準備して、パラメーターとして投稿することです。

$('form').submit(function () {

     var myPostData=//construct this from table and convert as JSON
     $.post('@Url.Action("Test", "Server")', {data:myPostData}, function (resp) {
          alert('success');
     });
     return false;
});
于 2013-02-25T09:41:28.557 に答える
0

I need the value of the textbox and the cell data to be posted to my controller's action method. So if I typed in 1234567 in the textbox then I need this value posted to the action method together with the contents of the table. I need the table data also for processing. Is this possible? I can't find a sample.

はい、可能ですが、テーブルには非表示の入力が含まれている必要がありtrtdデータを送信して送信することはできません (通常の送信、ajax ではありません)。また、serialize()テーブルの行をシリアル化しません。この質問を見てください:

asp.net mvcまたはjqueryを介してデータの動的行を含むテーブルを送信する方法は?

于 2013-02-25T08:29:22.477 に答える
0

WebMethodコントローラーアクションメソッドで設定します

[WebMethod]
[HttpPost]
public ActionResult Test(string[] data)
{
     // Use the value Cell data 1
     // Use the value Cell data 2

     return View();
} 
于 2013-03-06T18:02:29.310 に答える