【发布时间】:2023-03-14 19:45:01
【问题描述】:
我正在使用以下代码来调用局部视图:
$('#btnGetMilestones').click(function () {
$.ajax({
url: "GetMilestones",
type: "get",
success: function (result) {
$('#milestonesContainer').html(result);
},
error: function (xhr, status, error) {
var msg = "Response failed with status: " + status + "</br>"
+ " Error: " + error;
$('#milestonesContainer').html(msg);
},
complete: function (xhr, status) {
var doneMsg = "Operation complete with status: " + status;
alert(doneMsg);
}
});
});
对于这个 ActionResult:
public PartialViewResult GetMilestones()
{
return PartialView("_GetMilestones");
}
局部视图具有项目的里程碑(里程碑和项目是模型)。当我这样调用局部视图时:
<div id="milestonesContainer">
@Html.Partial("_GetMilestones")
</div>
它运行良好,它获得了项目的所有里程碑。 但是当我尝试通过 ajax 调用部分视图时,错误被调用: Response failed with status: error
错误:错误请求
我在一个项目的详细信息视图中,所以 url 是这样的http://localhost:55623/Projects/Details/2002
我是 ajax 和 javascript 的新手,所以如果可能的话,请像对初学者一样向我解释一下。
更新:
在得到一些答案并四处寻找解决方案后,我明白为什么会出现错误。 我在详细信息视图中,所以 url 是这样的:http://localhost:55623/Projects/Details/2002 看到有一个 ID 参数。 当我进行 ajax 调用时,url 就像这样 http://localhost:55623/Projects/Details 没有 id 参数。所以作为回报,我得到一个 400 错误代码
【问题讨论】:
-
除非您当前的网址是
http://<hostname>/<Controller that contains GetMilestones>,否则您的网址不正确。它必须是/<Controller>/GetMilestones。 -
@MikeMcCaughan 不,不是
-
也许您可以阅读问题及其答案,然后edit 您的问题表明它不是重复的。请阅读this meta post about contesting duplicates。
-
@Arianit 您也可以使用 AJAX 调用传递数据。
url: ..., type: ..., data: ...
标签: ajax asp.net-mvc razor asp.net-mvc-partialview