Razor常用语法介绍及示例

2022-07-15,,,,

@using

@using 指令用于向生成的视图添加 c# using 指令:

@using system.io
@{
    var dir = directory.getcurrentdirectory();
}
<p>@dir</p>

@page

@page 指令具有不同的效果,具体取决于其所在文件的类型。 指令:

在 .cshtml 文件中表示该文件是 razor page**。 有关详细信息,请参阅自定义路由和 asp.net core 中的 razor 页面介绍

指定 razor 组件应直接处理请求。 有关详细信息,请参阅 asp.net core blazor 路由。

@namespace

设置生成的 razor 页面、mvc 视图或 razor 组件的类的命名空间。

@layout

@layout 指令指定 razor 组件的布局。 布局组件用于避免代码重复和不一致。

@inject

@inject 指令允许 razor 页面将服务从服务容器注入到视图。

@implements

@implements 指令为生成的类实现接口。
以下示例实现 system.idisposable,以便可以调用 dispose 方法:

    
<h1>example</h1>

@functions {
    private bool _isdisposed;

    ...

    public void dispose() => _isdisposed = true;
}

@code

@code 块允许 razor 组件将 c# 成员(字段、属性和方法)添加到组件中。

    @code {
    // c# members (fields, properties, and methods)
}

@attribute

@attribute 指令将给定的属性添加到生成的页或视图的类中。 以下示例添加 [authorize] 属性:

@attribute [authorize]

注释

@{
    /* c# comment */
    // another c# comment
}
<!-- html comment -->

转义

如果需要针对@转义, 使用@@即可, 因为@为razor的语法

呈现html

@("<span>hello world</span>")

<span>hello world</span>

try、catch、finally

与c#语法相似, 使用@前缀声明即可。

    {
    throw new invalidoperationexception("you did something invalid.");
}
catch (exception ex)
{
    <p>the exception message: @ex.message</p>
}
finally
{
    <p>the finally statement.</p>
}

循环语句for、foreach、while 和 dowhile

  • @for
@for (var i = 0; i < people.length; i++)
{
    var person = people[i];
    <p>name: @person.name</p>
    <p>age: @person.age</p>
}
  • @foreach
@foreach (var person in people)
{
    <p>name: @person.name</p>
    <p>age: @person.age</p>
}
  • @while
@{ var i = 0; }
@while (i < people.length)
{
    var person = people[i];
    <p>name: @person.name</p>
    <p>age: @person.age</p>

    i++;
}
  • @do while
@{ var i = 0; }
@do
{
    var person = people[i];
    <p>name: @person.name</p>
    <p>age: @person.age</p>

    i++;
} while (i < people.length);

条件语句 if、else if、else 和 switch

@if (value % 2 == 0)
{
    <p>the value was even.</p>
}

@if (value % 2 == 0)
{
    <p>the value was even.</p>
}
else if (value >= 1337)
{
    <p>the value is large.</p>
}
else
{
    <p>the value is odd and small.</p>
}

@switch (value)
{
    case 1:
        <p>the value is 1!</p>
        break;
    case 1337:
        <p>your number is 1337!</p>
        break;
    default:
        <p>your number wasn't 1 or 1337.</p>
        break;
}

更多语法介绍

到此这篇关于razor常用语法介绍及示例的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

《Razor常用语法介绍及示例.doc》

下载本文的Word格式文档,以方便收藏与打印。