[英]The Url.Action '@Url.Action(“Update”, “Admin”)'query string which is not working in .NET MVC
Ajax 生成的查询字符串
url:'@Url.Action("Update","Admin")'
是http://localhost:61887/Adimn/Update?id=16
这不起作用但是当 url 给出为
url: '/Admin/Update'
它产生
http://localhost:61887/Adimn/Update/16
它工作正常。
为什么会这样?
这是我的脚本:
function EditUser(value) {
$.ajax({
url: '@Url.Action("Update", "Admin")'
url: '/Admin/Update',
data: {
id: value
}
})
.done(function (response) {
$("#Ajaxcontainer").html(response);
focusAction("Ajaxcontainer");
})
.fail(function (XMLHttpRequest, textStatus, errorThrown) {
alert("FAIL");
});
}
这是 HTML 链接:
<button type="button" class="btn btn-primary btn-sm" data-id="@item.ID" onclick="EditUser(@item.ID);">Edit</button>
您可以将参数传递给 Url.Action,例如:
Url.Action("Update", "Admin", new { id = id });
所以:
$.ajax({
url: '@Url.Action("Update", "Admin", new { id = 16})',
//url: '/Admin/Update/16',
contentType: "application/json",
success: function (result) {
// your code here
},
error: function (xhr, resp, text) { console.log(xhr, resp, text); }
});
这样,请求的 url 将是: http://localhost:61887/Adimn/Update/16
尽管,
$.ajax({
url: '/Admin/Update/',
type: "GET",
data: {
"id":16
},
contentType: "application/json",
success: function (result) { alert('success'); },
error: function (result) { alert('Error'); }
});
这样,请求的 url 将是: http://localhost:61887/Adimn/Update/?id=16
您之所以在 url ?id=16
的末尾看到查询字符串,是因为默认情况下您通过 ajax 发送Get
请求。 您可以决定在 ajax 调用中使用type: "POST",
以避免查询字符串,而是将 model 数据捆绑并通过消息正文发送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.