1

我正在使用ASP.NET MVCjQuery

我有一个文本框和一个包含数据的 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

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 回答
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.

是的,这是可能的,但是您的表必须包含隐藏的输入,tr并且td不能通过提交(普通提交,而不是 ajax)发送数据,也serialize()不要序列化表行。看这个问题:

如何通过 asp.net mvc 或 jquery 提交包含动态数据行的表?

于 2013-02-25T08:29:22.477 回答
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 回答