.NET MVC5自带模板方法功能解析(1)

本文详细介绍了.NET MVC5中的模板方法,包括@Styles.Render()用于批量加载CSS和JS文件,@RenderSection()与@RenderBody()处理页面节区,Partial与RenderPartial用于部分视图的显示,以及Html.ActionLink的功能和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.模板页

(1) @Styles.Render()方法

在页面上可以用@Styles.Render("~/Content/css")来加载css
首先要在App_Start 里面BundleConfig.cs 文件里面 添加要包含的css文件
BundleConfig就是一个微软新加的 一个打包的配置类

模板中:

@Styles.Render("~/Content/css")

添加配置:

 bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));

这样就可以用一段代码加载多个CSS文件了

同理,加载js文件:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")

(2)@RenderSection()和 @RenderBody()

HelperResult RenderSection(string name)

但是当如果使用了_Layout.cshtml做母版页的页没有实现Section的话,就会抛出异常,这是因为在_Layout.cshtml中使用的是@RenderSection(“SubName”),他要求所有子页都要实现。

HelperResult RenderSection(string name, bool required = true)

其中,required默认为true表示引用这个布局页的所有View必须含有该 Section ,设为false则为可以有,也可以没有。

模板页:

 @RenderSection("scripts", required: false)

页面使用:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

@RenderBody()
呈现子页的主体内容

(3)Partial, RenderPartial, Action,RenderAction

Partial 和RenderPartial:
这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样
Partial 回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上

@Html.Partial("ViewName")

RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View

@{
            Html.RenderPartial("ViewName");
    } 

这两个方法没有用到Controller, 是直接把一个View(Page) 给加进来,所以只能加载静态页面

Html.Action()/@Html.RenderAction()

和Partial与RenderPartial类似,但是因为会通过Action,所以更灵活,可以利用控制器上下文。
在Action中可以通过IsChildAction来判断是被Url直接调用还是被Action()/RenderAction()调用
可以利用重载直接参数给Action。
Action中使用return PartialView()指定分部视图,在_ViewStatrt.cshtml中指定的Layout会无效。

 @{Html.RenderAction("ViewUserControl1");}
 @Html.Action("ViewUserControl1")
Controller:
[ChildActionOnly]//防止直接调用
public ActionResult ViewUserControl1()
{
    ViewBag.Test = "(Action)调用";
    return PartialView();
}

参考 http://www.cnblogs.com/Relict/archive/2012/04/27/2473340.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值