【发布时间】:2011-09-30 14:45:00
【问题描述】:
当我看到Layout = null; 时怎么会 - 它仍然拉入默认布局?!
有什么技巧可以阻止它这样做吗?
这是我没有布局的视图:
@{
Layout = "";
}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
@{Html.RenderAction("Head", "Header");}
</head>
<body>
<div>
Home
</div>
</body>
</html>
这是渲染的输出!!
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
</head>
<body>
header
</body>
</html>
</head>
<body>
<div>
Home
</div>
</body>
</html>
【问题讨论】:
-
在呈现的页面中看到
null这个词了吗? -
你在哪里设置默认布局?
-
这个目录下有_viewstart.cshtml吗?当我尝试使用 _viewstart 时,我遇到了同样的问题。然后我将其重命名为 _mydefaultview,将其移至 views/shared 目录,并切换到在我不需要的 cshtml 文件中指定没有视图,并为其余部分指定 _mydefaultview。不知道为什么这是必要的,但它确实有效。
-
请将其设置为答案,我会将其标记为正确。这肯定是剃须刀的错误?
-
我不确定这是否是一个错误,_viewstarts 是为了不被覆盖,或者我们做错了什么。我也想知道。
标签: asp.net-mvc asp.net-mvc-3 layout razor