【发布时间】:2019-02-23 10:15:54
【问题描述】:
你好, 我有菜单栏,当我点击 About its changes renderbody in Layout using Ajax:
<div id="renderbody">@RenderBody()</div>
菜单栏:
<li class="active menu-tab"><a href="#" id="Dashboard"><i class="icon icon-home"></i> <span>Dashboard</span></a> </li>
<li class="menu-tab"> <a href="#" id="About"><i class="icon icon-signal"></i> <span>About</span></a> </li>
和 JS:
$("#About").click(function () {
$.ajax({
url: '/Home/About',
success: function (data) {
$("#renderbody").html(data);
}
})
})
效果很好,但是当我使用局部视图和模型进行操作时,它不起作用。
<li class="menu-tab"> <a href="#" onclick="@Html.Partial("_MovesPages", new IndividualMenuButton { ID="About", url="About"})"><i class="icon icon-signal"></i> <span>About</span></a> </li>
模态 - IndividualMenuButton:
namespace XXX.Models
{
public class IndividualMenuButton
{
public string ID { get; set; }
public string Url { get; set; }
}
}
和局部视图 - _MovesPages:
@model XXX.Models.IndividualMenuButton
@section scripts
{
<script>
$("#@Model.ID").click(function () {
$.ajax({
url: '/Home/@Model.Url',
success: function (data) {
$("#renderbody").html(data);
}
})
})
</script>
}
【问题讨论】:
-
“它不起作用”你能详细说明吗?你的控制器动作没有命中吗?您的控制器操作是否返回 HTML 但未插入页面?
-
控制器动作返回 HTML 但它没有插入到页面@GeorgPatscheider
-
您是否在控制台中收到任何特定的错误消息? (在 Chrome 中是 ctrl+shift+i)
-
在控制台@Martin 中没有收到任何特定的错误消息
-
你能找到元素
#renderbody吗?如果它在您的模式中,请尝试在元素上执行find()。$('#yourModalBody').find('#renderbody').html(data);
标签: ajax asp.net-mvc