我正在使用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,那么我需要将此值与表的内容一起发布到action方法。我还需要表数据进行处理。这可能吗?我找不到样品。
我的行动方法如下:
[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;
});
我不明白我做错了什么。
答案 0 :(得分: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()
也可以不序列化表行。看看这个问题:
How to submit a table with dynamic rows of data via asp.net mvc or jquery?
答案 1 :(得分:0)
基本上,当您提交表单时,仅提交INPUT,Hidden,TextAra等表单元素,NOT 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;
});
答案 2 :(得分:0)
在控制器操作方法中设置WebMethod
对
[WebMethod]
[HttpPost]
public ActionResult Test(string[] data)
{
// Use the value Cell data 1
// Use the value Cell data 2
return View();
}