Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无法使用ajax在asp.net mvc 4中发送参数_Jquery_Asp.net_Ajax_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Jquery 无法使用ajax在asp.net mvc 4中发送参数

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,

我尝试使用ajax将表单数据发送到action方法,但它不起作用,如果我尝试不使用ajax,那么它就可以完美地工作。我在网上搜索过,但找不到任何合适的解决方案,我正在分享我的代码,请指导我

HTML:

MVC行动:

[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({
    .....
  });
});