【发布时间】:2014-09-05 01:04:59
【问题描述】:
我正在尝试使用 ajax 将表单数据发送到操作方法,但它不起作用,如果我尝试不使用 ajax,那么它可以完美地工作。我已经搜索了互联网,但找不到任何合适的解决方案,我正在分享我的代码,请指导我。
HTML:
<form action="/sp/operate?id=38" id="PartialFormSubmit" method="post">
<table id="MainTablePartial">
<thead>
<tr>
<th style="width: 8px;">
<input type="checkbox" id="selectAll" />
</th>
<th>
Part No
</th>
<th>
MFG
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
</tbody>
</table>
<button type="submit" name="request" value="Quote" class="btn yellow">Send Quote</button>
<button type="submit" name="request" style="margin-left:220px;" value="NoStock" class="btn red box">No Stock</button>
</form>
jQuery:
$("#PartialFormSubmit").on('submit', function (e) {
e.preventDefault();
var dd = $(this).serialize();
$.ajax({
type: "Post",
url: $(this).attr("action"),
dataType: "json",
contentType: "application/json; charset=utf-8",
cache: false,
data: JSON.stringify(dd),
success: function (data) {
alert(data);
},
error: function (jqr, errorStatus, errorThrow) {
alert("Some Error Occurred! ");
}
});
return false;
});
MVC 动作:
[Route("operate")]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult PerformOperation(int? id, List<TicketDetail> ticketDetail, string request)
{
return Json("message",JsonRequestBehavior.AllowGet);
}
如果我通过 ajax 发送表单,我将“请求”设为 null,而没有 ajax 它正在工作。请指导我
====================
更新:
试过斯蒂芬码
$('button[type="submit"]').on('click', function (e) {
e.preventDefault();
var dd = $(this).serializeArray();
dd.push({ request: $(this).val() })
$.ajax({
type: "Post",
url: $(this).attr("action"),
dataType: "json",
contentType: "application/json; charset=utf-8",
cache: false,
data: JSON.stringify(dd),
success: function (data) {
alert(data);
},
error: function (jqr, errorStatus, errorThrow) {
alert("Some Error Occurred! ");
}
});
return false;
});
它只是调用错误函数“发生了一些错误!”
【问题讨论】:
标签: jquery asp.net ajax asp.net-mvc asp.net-mvc-4