• Razor 常用语法介绍


    @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;
    }
    
    

    更多语法介绍

  • 相关阅读:
    常见http状态码
    通过adb shell命令查看内存,CPU,启动时间,电量等信息
    Jmeter获取数据库数据参数化
    jmeter链接mysql数据库,sql数据库,oracle数据库
    appium 隐藏键盘
    python编码
    python:打印所有文件名字的扩展名
    python中字符串常见操作
    python中的字符串存储及切片介绍
    Ubuntu14.04安装部署bugzilla5.0.3
  • 原文地址:https://www.cnblogs.com/zh7791/p/12751824.html
Copyright © 2020-2023  润新知