嘿,我想用ajax调用控制器动作。但它给出了一个错误。 “资源无法找到”。 javascript函数调用成功控制器动作未调用
这是我的观看代码:
<a class="btn btn-primary" onclick="EditUser('Delete', 'Users', '@Model.Items.ElementAt(i).ID');">Link</a>
function EditUser(action, controller, id)
{
alert(action);
alert(controller);
alert(id);
$.ajax({
type: "POST",
url: '@Url.Action("Edit", "Users")',
data: "{ id: '" + id + "'}",
success: function (response) {
if (response.d != '1') {
alert('Not Saved!');
}
},
error: function (response) {
if (response.responseText != "") {
alert(response.responseText);
alert("Some thing wrong..");
}
}
});
}
这是我的控制器动作。
public override ActionResult Edit(int id = 0)
{
int a = id;
return View("Edit", DTO);
}
答案 0 :(得分:2)
<div id='Sample'></div>
Modify your Ajax function as below.
$.ajax({
type: "POST",
url: '@Url.Action("Edit", "Users")',
data: { id: id },
success: function (response) {
$('#Sample').html(response);
},
error: function (response) {
if (response.responseText != "") {
alert(response.responseText);
alert("Some thing wrong..");
}
}
});
[HttpPost]
public override ActionResult Edit(int id = 0)
{
int a = id;
return PartialView("Edit",dto);
}
如果您将Ajax类型指定为post,请确保添加
[HttpPost]
控制器动作中的属性。