Jquery 无法使用ajax在asp.net mvc 4中发送参数
我尝试使用ajax将表单数据发送到action方法,但它不起作用,如果我尝试不使用ajax,那么它就可以完美地工作。我在网上搜索过,但找不到任何合适的解决方案,我正在分享我的代码,请指导我 HTML: MVC行动:Jquery 无法使用ajax在asp.net mvc 4中发送参数,jquery,asp.net,ajax,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net,Ajax,Asp.net Mvc,Asp.net Mvc 4,我尝试使用ajax将表单数据发送到action方法,但它不起作用,如果我尝试不使用ajax,那么它就可以完美地工作。我在网上搜索过,但找不到任何合适的解决方案,我正在分享我的代码,请指导我 HTML: MVC行动: [Route("operate")] [HttpPost] [AcceptVerbs(HttpVerbs.Post)] public JsonResult PerformOperation(int? id, List<TicketDetail> ticketDetail,
[Route("operate")]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult PerformOperation(int? id, List<TicketDetail> ticketDetail, string request)
{
return Json("message",JsonRequestBehavior.AllowGet);
}
它只是调用错误函数“发生了一些错误!”提交按钮没有使用
.serialize()
进行序列化。从
注意:只有“成功的控件”被序列化为字符串。不
提交按钮值已序列化,因为表单未提交
使用按钮
在任何情况下,ticketDetail
也将是空的,因为您命名控件的方式以及所有那些重复ID的html无效
编辑
要回发相关提交按钮的值,请修改脚本以处理按钮的。单击()
$('button[type="submit"]').click(function(e) {
e.preventDefault();
var dd = $(this).serializeArray(); // serialize the form values
dd.push({ request: $(this).val() }) // add the value of the button that was clicked
$.ajax({
.....
});
});
附加事件处理程序以单击提交按钮,使用name=“request”的隐藏输入,并在调用serialize
之前设置其值;推送({request:someValue})代码>但如何知道要发送哪个按钮值?您确实需要处理按钮。单击()
事件,而不是表单的。提交()
event@StephenMuecke如果我遵循每个按钮点击方式,我如何每次以不同方式提交表单?我将很快编辑答案,但正如我所指出的,使用您用于创建视图的代码,它不会起任何作用way@StephenMuecke我怎样才能解决这个问题?在过去的5个小时里,我一直在寻找和尝试不同的方法:(
[Route("operate")]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult PerformOperation(int? id, List<TicketDetail> ticketDetail, string request)
{
return Json("message",JsonRequestBehavior.AllowGet);
}
$('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;
});
$('button[type="submit"]').click(function(e) {
e.preventDefault();
var dd = $(this).serializeArray(); // serialize the form values
dd.push({ request: $(this).val() }) // add the value of the button that was clicked
$.ajax({
.....
});
});