我正在渲染ajax请求操作,我希望收到部分视图。 相反,我得到完整的渲染页面,包括布局页面,我不知道为什么
我的行动:
public PartialViewResult Menu(int? caseId)
{
if (caseId != null)
{
ViewBag.MenuId = caseId;
}
return PartialView("_MenuPartial", null);
}
我的视图是使用jquery ajax
呈现的 function loadMenu(id) {
$.ajax({
data: "/Home/Menu?caseId=" + id,
success: function (data) {
alert(data);
$("#menucontainer").html(data);
}
});
}
最后我的观点名为“_MenuPartial”:
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
@if (@ViewBag.MenuId == 1 || @ViewBag.MenuId == 2)
{
<li>link @ViewBag.MenuId</li>
}
</ul>
知道为什么它返回整页而不是局部视图?
答案 0 :(得分:0)
您的.ajax()调用看起来有些偏差。您应该使用“url”属性来调用控制器操作。它看起来像这样:
function loadMenu(id) {
$.ajax({
url: "/Home/Menu?caseId=" + id,
success: function (data) {
$("#menucontainer").html(data);
}
});
}
假设您的所有文件都在正确的文件夹中,您应该得到您期望的结果。如果需要将更复杂的数据类型传递给操作,可以序列化JSON对象并将其发送到data参数中。