我创建了一个MVC3的测试项目,该项目只有一个剃刀布局。 在布局中我使用jquery来创建动态菜单,我只想获得效果是当我点击这些菜单时,它应该返回主体段中的不同局部视图,并且布局菜单应该记住菜单状态我点击了布局页。
但结果是,当我每次点击菜单时,布局会再次渲染,菜单状态会恢复,如何解决问题?
这是我的代码!!!有人可以帮助我吗?谢谢!!!
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$(".sidebar1 dl dd").hide();
$(".sidebar1 dl dt").click(function () {
$(".sidebar1 dl dd").not($(this).next()).hide();
$(this).next().slideToggle(500);
});
});
</script>
</head>
<body>
<div class="container">
<div class="header"><a href="#"><img src="/Content/images/logo.png" alt="logo" name="Insert_logo" width="180" height="90" id="Insert_logo" style="background-color: #C6D580; display:block;" /></a>
<!-- end .header --></div>
<div class="sidebar1">
<dl class="nav">
<dt><a href="#">aaaaa</a></dt>
<dd>
<ul>
<li><a href="#">AAAA</a></li>
<li><a href="#">BBBB</a></li>
<li><a href="#">CCCC</a></li>
</ul>
</dd>
<dt><a href="#">aaaaa</a></dt>
<dd>
<ul>
<li><a href="#">AAAA</a></li>
<li><a href="#">BBBB</a></li>
<li><a href="#">CCCC</a></li>
</ul>
</dd>
</dl>
</div>
<div class="content">
@RenderBody()
</div>
</body>
</html>
答案 0 :(得分:0)
如果需要,您可以指定每个页面上使用的布局。 如果您不想要布局,只需将其设置为null。 把它放在页面顶部:
@{
layout = null
}
答案 1 :(得分:0)
用户,
你有:
<div class="content">
您需要将其更改为:
<div id="content">
然后,您需要定位部分视图以更新该div。这意味着您的控制器操作应返回PartialView(),而不是View()。此外,无需担心上述任何内容,您只需尝试将点击功能更改为:
$(function () {
$(".sidebar1 dl dd").hide();
$(".sidebar1 dl dt").click(function (e) {
$(".sidebar1 dl dd").not($(this).next()).hide();
$(this).next().slideToggle(500);
e.preventDefault();
return false;
});
});
可能会有更多要求,因为你没有显示ajax代码,但我愿意打赌,如果你在你的ajax调用中遵循标准,那么这将通过所提到的更改自行解决。