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);
}
});
})
});