使用 ajax 调用操作不显示页面
Calling Action with ajax doesnt show page
我想通过 Ajax 调用来调用控制器方法。如果调用此方法,则应返回另一个视图。
当我调试代码时,我也会到达我的控制器方法。但是,不会显示新视图。
我做错了什么?
控制器:
public ActionResult RequestDetails(string requestId, string requestState)
{
// ToDo handle parameter
return View();
}
JS:
ShowDetails = function (e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
$.ajax({
type: 'GET',
data: {
'requestId': dataItem.RequestId,
'requestState': dataItem.RequestState
},
url: "/Controller/RequestDetails",
contentType: 'application/json; charset=utf-8'
});
}
我做错了什么?
此致
它不会显示,除非您指示它如何处理从 ajax 调用返回的结果。
您需要先在当前显示在页面上的主视图上创建一个容器 html 元素:
<div id="RequestDetailsContainer">
</div>
然后在 success
回调中,您需要将控制器操作返回的 html 显示在 div 中:
$.ajax({
type: 'GET',
data: {
'requestId': dataItem.RequestId,
'requestState': dataItem.RequestState
},
url: "/Controller/RequestDetails",
contentType: 'application/json; charset=utf-8',
success: function(response) { // note this function
$("#RequestDetailsContainer").html(response);
}
});
关于 url
属性 的旁注,您应该使用 Url.Action
来生成 url,而不是使用像这样的字符串文字:
url: "@Url.Action("RequestDetails","Controller")"
希望对您有所帮助。
我想通过 Ajax 调用来调用控制器方法。如果调用此方法,则应返回另一个视图。 当我调试代码时,我也会到达我的控制器方法。但是,不会显示新视图。 我做错了什么?
控制器:
public ActionResult RequestDetails(string requestId, string requestState)
{
// ToDo handle parameter
return View();
}
JS:
ShowDetails = function (e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
$.ajax({
type: 'GET',
data: {
'requestId': dataItem.RequestId,
'requestState': dataItem.RequestState
},
url: "/Controller/RequestDetails",
contentType: 'application/json; charset=utf-8'
});
}
我做错了什么?
此致
它不会显示,除非您指示它如何处理从 ajax 调用返回的结果。
您需要先在当前显示在页面上的主视图上创建一个容器 html 元素:
<div id="RequestDetailsContainer">
</div>
然后在 success
回调中,您需要将控制器操作返回的 html 显示在 div 中:
$.ajax({
type: 'GET',
data: {
'requestId': dataItem.RequestId,
'requestState': dataItem.RequestState
},
url: "/Controller/RequestDetails",
contentType: 'application/json; charset=utf-8',
success: function(response) { // note this function
$("#RequestDetailsContainer").html(response);
}
});
关于 url
属性 的旁注,您应该使用 Url.Action
来生成 url,而不是使用像这样的字符串文字:
url: "@Url.Action("RequestDetails","Controller")"
希望对您有所帮助。