我一直在阅读布局、部分、视图和局部视图,但我真的不知道如何处理这样的布局示例:

正文将是一个“视图”,边栏将是一个“节”,页脚将是“布局”中的静态HTML,但是...什么是顶栏和导航?
顶部栏与任何东西都不相关,所以我会把它作为“布局”中的“局部视图”,但我不能这样做,因为它必须在<body>中,所以当我调用@RenderBody()时,它应该被呈现。与导航一样,它以某种方式与主体相关,但我想将其分离为一个外部控件,该控件独立运行,并根据URL中的信息显示信息。
我应该如何处理这个问题?
更新,请阅读: the Razor is not CSS and HTML,这不是关于如何布局,而是如何使用剃刀工具来做这件事,这是关于剃刀RenderBody和PartialView的。
当我从控制器返回结果时,我希望返回图片中标记为"body“和"side bar”的部分,以避免重复顶部条形码。有没有办法创建一个"ChildView",它继承自"ParentView“和"Layout",当我返回"View("ChildView")时,屏幕会自动构建?
发布于 2011-05-16 22:45:36
本教程的最后一部分描述了如何使用Html.RenderAction()方法设计布局以包含部分视图。另请参阅Html.RenderSection()方法。
发布于 2011-05-17 00:52:07
有一个关于Razor布局的很棒的帖子:ASP.NET MVC 3: Layouts with Razor。
基本上,您的结构将是:
1) _ViewStart.cshtml (它将指向所有视图共享的布局和其他内容);
2)一个可以作为布局的.cshtml,即:_Layout.cshtml (类似于Site.Master网页)。
在_Layout.cshtml中,您将放置您的HTML布局,例如:
<body>
<div id="maincontainer">
<div id="topsection">
<div class="topbar">
<h1>Header</h1>
<div id="logindisplay">
@Html.Partial("_LogOnPartial")
</div>
</div>
<div class="nav">
<ul><li>Home</li></ul>
</div>
</div>
<div id="contentwrapper">
<div id="contentcolumn">
<div class="body">
@RenderBody()
</div>
</div>
</div>
<div id="sidebar">
<b>Side bar</b>
</div>
<div id="footer">Footer</div>
</div>
</body>注意我将@RenderBody()放在div "#body“中,所以当我的控制器返回一个ActionResult时,只有这个div会用结果更新。
https://stackoverflow.com/questions/6018362
复制相似问题