首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MVC3剃刀布局页面?

如何使用MVC3剃刀布局页面?
EN

Stack Overflow用户
提问于 2011-05-16 21:46:01
回答 2查看 20.6K关注 0票数 16

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

  • 顶部栏:就像Facebook的顶部栏一样。我将包含身份验证信息和常规选项和menus.
  • Navigation栏:将包含有关您在哪里以及您可以去哪里的信息。还有一个“搜索”框。页脚正文:实际想要的information.
  • Side栏:将包含有关正文内容的相关信息。
  • 页脚:版权、许可等。

正文将是一个“视图”,边栏将是一个“节”,页脚将是“布局”中的静态HTML,但是...什么是顶栏和导航?

顶部栏与任何东西都不相关,所以我会把它作为“布局”中的“局部视图”,但我不能这样做,因为它必须在<body>中,所以当我调用@RenderBody()时,它应该被呈现。与导航一样,它以某种方式与主体相关,但我想将其分离为一个外部控件,该控件独立运行,并根据URL中的信息显示信息。

我应该如何处理这个问题?

更新,请阅读: the Razor is not CSS and HTML,这不是关于如何布局,而是如何使用剃刀工具来做这件事,这是关于剃刀RenderBodyPartialView的。

当我从控制器返回结果时,我希望返回图片中标记为"body“和"side bar”的部分,以避免重复顶部条形码。有没有办法创建一个"ChildView",它继承自"ParentView“和"Layout",当我返回"View("ChildView")时,屏幕会自动构建?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-16 22:45:36

查看MVC3 Music Store Tutorial

本教程的最后一部分描述了如何使用Html.RenderAction()方法设计布局以包含部分视图。另请参阅Html.RenderSection()方法。

票数 10
EN

Stack Overflow用户

发布于 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布局,例如:

代码语言:javascript
复制
<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会用结果更新。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6018362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档