Javascript 使用ajax调用控制器
大家好,我想用ajax调用控制器动作。但它给出了一个错误。 “找不到资源”。javascript函数调用成功控制器操作未被调用 以下是我的查看代码:Javascript 使用ajax调用控制器,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,大家好,我想用ajax调用控制器动作。但它给出了一个错误。 “找不到资源”。javascript函数调用成功控制器操作未被调用 以下是我的查看代码: <a class="btn btn-primary" onclick="EditUser('Delete', 'Users', '@Model.Items.ElementAt(i).ID');">Link</a> function EditUser(action, controller, id)
<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..");
}
}
});
}
如下所示修改Ajax函数。
$.ajax({
类型:“POST”,
url:'@url.Action(“编辑”、“用户”),
数据:{id:id},
成功:功能(响应){
$('#Sample').html(响应);
},
错误:函数(响应){
如果(response.responseText!=“”){
警报(response.responseText);
警惕(“某些事情出错了”);
}
}
});
[HttpPost]
公共覆盖操作结果编辑(int id=0)
{
int a=id;
返回PartialView(“编辑”,dto);
}
如果将Ajax类型指定为post,请确保添加[HttpPost]
属性。您是否已将其声明为控制器中的“Post”方法。类似于[HttpPost]的内容不,我没有声明任何东西,请在控制器中声明的方法上方添加[HttpPost]。或者在ajax中使用“Get”。更改后不工作您是否从控制器返回
json
?似乎不是。您希望从控制器操作返回什么?它是重定向到另一个页面还是部分页面加载。?我正在返回,我想显示此视图如果您使用ajax,则就像您希望部分加载页面一样。编辑答案后,您必须创建一个#Div来加载部分视图数据,并确保部分视图返回正确的HTML。
public override ActionResult Edit(int id = 0)
{
int a = id;
return View("Edit", DTO);
}
<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);
}