当我尝试使用以下JQuery / AJAX将HTTP发布到“Home”控制器时,我收到“错误请求”错误。有没有人看到原因?
这几乎是从这里获得的示例的副本,除了大大简化:JQUERY ajax passing value from MVC View to Controller。它似乎没有找到控制器,这让我感到困惑 - 我已经摆弄了很多,并没有成功。
视图中的按钮抛出“错误请求”错误,但未到达控制器:
<td> <input type="submit" class="btn-default" name="submit" value="Start Simulating-Jquery" id="btnSaveComments" />
<script> $('#btnSaveComments').click(function () {
$.ajax({
url: '<%:Url.Action("SaveComments")%>',
type: "post",
cache: false,
success: function (savingStatus) {
alert("save")
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.toString())
alert(ajaxOptions.toString())
alert(thrownError.toString())
}
});
});
</script>
</td>
执行视图中按钮的示例:
@Ajax.ActionLink("ActonLinkTest", "SaveComments", "Home",
new AjaxOptions
{
HttpMethod = "POST"
}
)
Controller(Home):
[HttpPost]
public ActionResult SaveComments()
{
return new EmptyResult();
}
编辑:这也失败了。
查看:
<td>
<input type="submit" class="btn-default" name="submit" value="Start Simulating-Jquery #2" id="btnSaveComments2" />
<script>
$('#btnSaveComments2').click(function () {
var comments = 'a';
var selectedId = '1';
$.ajax({
url: '<%: Url.Action("SaveComments")%>',
data: { 'id': selectedId, 'comments': comments },
type: "post",
cache: false,
success: function (savingStatus) {
},
error: function (xhr, ajaxOptions, thrownError) {
alert('failed')//$('#lblCommentsNotification').text("Error encountered while saving the comments.");
}
});
});
</script>
</td>
用控制器中的这个替换以前的savecomments函数:
[HttpPost]
public ActionResult SaveComments(int id, string comments)
{
return new EmptyResult();
}
答案 0 :(得分:1)
尝试这样
var id = 1;
var comments = 'abc';
$.ajax({
data: { 'id': id, 'comments': comments },
url: '/Home/SaveComments1',
cache: false,
success: function (savingStatus) {
alert("save")
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.toString())
alert(ajaxOptions.toString())
alert(thrownError.toString())
}
});
});
答案 1 :(得分:0)
请尝试:
url: '<%= Url.Action("SaveComments") %>',
我认为你的内联标签错误。