Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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
C# Ajax调用在MVC4中不起作用_C#_Asp.net Mvc_Jquery - Fatal编程技术网

C# Ajax调用在MVC4中不起作用

C# Ajax调用在MVC4中不起作用,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,我在拉扯头发。看在我生命的份上,我做不到这一点。我认为有一种形式: <div id="cancel" class="cancel"> <form method="post" class="cancelForm"> <input type="hidden" class="cancelId" name="cancelId" value="@appliedLvl.LeavesId" /> <input id="cancelMe" c

我在拉扯头发。看在我生命的份上,我做不到这一点。我认为有一种形式:

 <div id="cancel" class="cancel">
    <form method="post" class="cancelForm">
     <input type="hidden" class="cancelId" name="cancelId" value="@appliedLvl.LeavesId" />
    <input id="cancelMe" class="cancelMe" type="submit" value="Cancel"/>
  </form>
</div>
和控制器

    [HttpPost]
    public ActionResult Cancel(Guid cancelId )
    {
        //do stuff here
        return PartialView();
    }
我总是使用ajax的错误函数。不管我怎么努力。同样的javascript代码在我的php项目上也能完美地工作。我不知道这里出了什么问题。谢谢你的帮助

编辑


这里的错误是,我希望在操作中使用Guid而不是字符串

您没有传入cancelId参数,因此它没有看到您的控制器方法

$(document).ready(function () {

$(".cancelForm").submit(function () {
    var MYcancelId = $('.cancelId').val();

$.ajax({
    type: "POST",
    url: "/Home/Cancel",
    data: { cancelId = MYcancelId },
   success: function (result) {
        alert("ok");
    },
    error: function (request, status, error) {
        debugger;
        confirm(request);
    }
});
})
});

你是不是回错了?您是否尝试使用fiddler查看请求是否返回与预期不同的HTTP状态代码?是的,即使如此,它仍然会给我一个错误。但多亏了费德勒,我才明白。问题是我是个白痴。在控制器中,我需要一个Guid,而我正在发送一个字符串!啊,那也行:)我第一次也应该注意到这一点。Fiddler是一个很棒的工具,我总是建议从它开始。很高兴你弄明白了!好。。。问题是似乎只有IE在工作。Firefox和Chrome仍然会出错。看来我收到了401.2未经授权的请求。这是一个intranet应用程序,我开始相信它与IE如何处理Ajax请求和其他两个请求的凭据有关。也许我错了。有什么想法吗?这可能会有帮助。如果您正在运行IIS,则可能是IIS问题。
$(document).ready(function () {

$(".cancelForm").submit(function () {
    var MYcancelId = $('.cancelId').val();

$.ajax({
    type: "POST",
    url: "/Home/Cancel",
    data: { cancelId = MYcancelId },
   success: function (result) {
        alert("ok");
    },
    error: function (request, status, error) {
        debugger;
        confirm(request);
    }
});
})
});