MVC:@RenderBody、@RenderPage、@RenderSection用法

本文导读:在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout。cshtml)放在了共享视图文件夹中。模板页:@RenderBody()占位符;局部页面:@RenderPage();模板页预设区域:@RenderSection("")

一、@RenderBody

当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过_Layout.cshtml布局页面的@RenderBody()方法呈现在标签之间。

二、@RenderPage

从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:

@RenderPage(“~/Views/Shared/_Header.cshtml”)

带参数

@RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you")

调用页面获取参数:

//获取 RenderPage() 传递过来的参数
@PageData["param"]

三、@RenderSection

布局页面还有节(Section)的概念,也就是说,如果某个视图模板中定义了一个节,那么可以把它单独呈现出来

为了防止因缺少节而出现异常,可以给RenderSection()提供第2个参数:

@RenderSection("head", false)

@if (IsSectionDefined("head"))
{
@RenderSection("head", false)
}
else
{
<p>SubMenu Section is not defined!</p>
}

 四、_Layout。cshtml 代码如下

HTML 代码   复制

<!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.4.4.min。js")" type="text/javascript"></script>

    @RenderSection("head", required: true)@*View页面自定义特定js/css使用*@

</head>

<body>

    @RenderPage("~/Views/Shared/_Header。cshtml")

    @RenderBody()

</body>

</html>
时间: 2024-10-14 13:03:03

MVC:@RenderBody、@RenderPage、@RenderSection用法的相关文章

MVC @RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、@Html.RenderAction

1.@RenderBody() 作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间.这个方法不需要参数,而且只能出现一次. 2.@RenderPage 从名称可以猜出来这个方法是要呈现一个页面.比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:@RenderPage("~/Views/Shared/_Header.cshtml&qu

Mvc4_ActionLink跟@RenderBody ,@RenderPage

1. @Html.ActionLink("该链接要显示的文字A","对应的控制器方法B");会生成:<a href="C/B">A</a> 默认控制器为当前页面的控制器 2[email protected]("该链接要显示的文字A","对应的控制器方法B","指定了控制器名称C");会生成:<a href='C/B'>A</a> 3[ema

@RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别

1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间. 这个方法不需要参数,而且只能出现一次.2. RenderPage从名称可以猜出来这个方法是要呈现一个

MVC4 @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别

1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句:@RenderBody()其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间.这个方法不需要参数,而且只能出现一次.2. RenderPage从名称可以猜出来这个方法是要呈现一个页面.

Asp.Net MVC中DropDownListFor的用法(转)

2016.03.04 扩展:如果 view中传入的是List<T>类型 怎么使用 DropList 既然是List<T> 那么我转化成 T  List<T>的第一个,最后一个不就是M吗? @Html.DropDownListFor(model=>model.First().Title, ViewData["Title"] as List<SelectListItem>, "标题", @"dropdown

mvc4的@RenderBody()和@RenderSection()

@RenderBody():呈现子页的主体内容 @RenderSection():呈现特别的节部分. HelperResult RenderSection(string name, bool required = true); required默认为true必须覆写,设为false则为可选覆写: 注意的是:该函数在RC版中参数有所改变,参数中optional改为required,据说和VB的关键字冲突 下图则为我在子页的页脚部分覆写,在子页实现时,使用@section 自定义节名{ }格式. 如

ASP.NET MVC Ajax.ActionLink 简单用法

ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进行更新,其实实现这个效果,很简单,只需要使用 Ajax.ActionLink 即可. 1. 安装 Microsoft.jQuery.Unobtrusive.Ajax 程序包 Install-Package Microsoft.jQuery.Unobtrusive.Ajax 2. 引用 JS 文件:

@RenderBody()和@RenderSection()

强大的Razor引擎 一.Razor基础简介 Razor采用了cshtml后缀的文件名,截图如下: A. 版面布局 从图上看到,新的视图引擎已经没有了Site.Master这种MasterPage了,取而代之的是_Layout.cshtml和_ViewStart.cshtml. _Layout.cshtml等同于MasterPage:如下图所示: 这个_Layout.cshtml文件中已没有了MasterPage中<asp:ContentPlaceHolder ID="MainConten

Asp.net MVC Combres的简单用法

第一步:添加nuget包 [1]添加 nuget包后,会自动在 webconfig里面 添加配置文件(不用改) <section name="dotless" type="dotless.Core.configuration.DotlessConfigurationSectionHandler, dotless.Core" /><section name="combres" type="Combres.ConfigSe