首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC:@section的目的是什么?

ASP.NET MVC:@section的目的是什么?
EN

Stack Overflow用户
提问于 2012-10-26 23:06:01
回答 4查看 118.7K关注 0票数 140

对于ASP.NET MVC应用程序,我看到了this blog article。作者ScottGu将@section添加到Index.cshtml。

我有几个问题(参考上面的文章):

  • Is Index.cshtml a shared View?
  • 示例代码在特定视图中使用@section代码。为什么?

有人能解释一下为什么以及什么时候我会在视图中使用@section吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-26 23:11:20

@section用于定义从共享视图覆盖内容。基本上,它是您调整共享视图的一种方式(类似于Web窗体中的母版页)。

你可能会找到Scott Gu's write up on this very interesting

编辑:基于附加问题澄清

@RenderSection语法包含在共享视图中,例如:

代码语言:javascript
复制
<div id="sidebar">
    @RenderSection("Sidebar", required: false)
</div>

然后使用@Section语法将其放在视图中:

代码语言:javascript
复制
@section Sidebar{
    <!-- Content Here -->
}

在MVC3+中,您可以直接定义要用于视图的布局文件,也可以为所有视图提供一个默认视图。

可以在定义默认布局视图的_ViewStart.cshtml中设置公共视图设置,如下所示:

代码语言:javascript
复制
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

您还可以将共享视图设置为直接在文件中使用,如此代码片段中所示的直接使用index.cshtml。

代码语言:javascript
复制
@{
    ViewBag.Title = "Corporate Homepage";
    ViewBag.BodyID = "page-home";
    Layout = "~/Views/Shared/_Layout2.cshtml";
}

您可以通过this SO answer中提到的更多方法来调整此设置。

票数 144
EN

Stack Overflow用户

发布于 2012-10-26 23:11:34

Javascript就是一个很好的例子。您希望它位于在浏览器中呈现的页面的底部,因为这是最佳实践。

在基于布局/母版页的视图中,您只能访问页面的中间部分,如何执行此操作?

您可以通过在布局页面底部声明一个Scripts部分来实现这一点。然后,您可以添加内容,在本例中Javascript包括(我希望!),从您的视图页面到布局页面的底部。

票数 21
EN

Stack Overflow用户

发布于 2012-10-27 02:02:53

当您想要在布局页面中定义的占位符中呈现一些代码/内容时,可以使用部分。

在您链接的特定示例中,他在_Layout.cshtml中定义了RenderSection。任何使用该布局的视图都可以定义一个与布局中定义的名称相同的@section,并且它将替换布局中的RenderSection调用。

也许你想知道我们是如何知道Index.cshtml使用这种布局的?这是由于一些MVC/Razor约定造成的。如果你看他正在添加视图的对话框,“使用布局或母版页”框被选中,在它的正下方显示“如果它是在剃刀_viewstart文件中设置的,则保留为空”。它没有显示,但在_ViewStart.cshtml文件中有如下代码:

代码语言:javascript
复制
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

ViewStart的工作方式是,同一目录或子目录中的任何cshtml文件都会在ViewStart自身运行之前运行它。

这就是Index.cshtml使用Shared/_Layout.cshtml的原因。

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

https://stackoverflow.com/questions/13089489

复制
相关文章

相似问题

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