您的位置:

Razor模板引擎介绍

一、简介

Razor是ASP.NET Core的默认视图引擎。\n 相对于ASP.NET WebForms 视图引擎更加轻量级,能够更加灵活自由得构建视图。\n Razor是一种简单、轻量级并易于学习的模板引擎,可用于创建Web应用程序的视图。\n Razor的设计原则是清晰明了的HTML和模板语法,并为Web开发人员提供一种自然编写动态页面内容的方式。

二、基本语法

Razor的语法是与C#语法相对应的也就是说,一般情况下就用原生的HTML语法,需要使用Razor代码块时,只需在代码块前用“@”符号将其标记即可。\n 在HTML标签中,@符号使之后的文本被视为C#代码:@Variable。@{ ... } 包含复杂代码,例如控制结构、循环和协定.

    @if(System.DateTime.Now.Year >= 2023){
        

The current year is greater than or equal to 2023!

}

三、模板继承

Razor视图可以继承另一个视图,因此您可以从基页面中分离出共通代码并让各个派生页面也具有相同的结构。另外,使用此技术还可以减少描 述脚本块内部代码的重复性,可以容易地将设计模板化。

四、数据绑定

使用@class、@value、@checked、@for、@@等,可以将数据绑定到HTML元素上,从而实现动态设置标记的属性值等功能。例如:

    <input type="text" class="@Model.CreditCard.IsExpired ? "expired" : null" />
    <input type="checkbox" checked="@Model.CreditCard.IsDefault" />

五、局部视图

使用局部视图可以将页面划分为更小的部分,以便将逻辑划分为可维护的组件。局部视图通常用于显示重复使用的内容可能在多个地方。

    @* My Partial View - _MyPartialView.chtml *@
    

@ViewData["Message"]

@* View that Uses the Partial View *@ @Html.Partial("_MyPartialView")

六、模板缓存

Razor可以在服务器端缓存生成的页面。该缓存可以解决在Web应用程序中提供良好的性能和可扩展性问题。您可以使用@{ ScriptSection } 快 照语法将脚本的参数表示为部分参数 @Html.Cache("My Key") 将部分视图缓存到目标的key。

    @{
        var items = Html.Cache("myKey", () => SomeExpensiveFunction());
    }

七、多语言支持

多语言支持通常是Web应用程序的必备功能之一。使用Resource或者PO(File)方式将多语言国际化抽离出来,再通过Razor视图将多语言信息应用到Web界面上。

@using System.Resources
@{
    var rm = new ResourceManager("Resources.Example", typeof(Example).Assembly);
}



    Index


    

@rm.GetString("Header")

@rm.GetString("Content")