Blazor简单教程(1.1):Razor基础语法

文章目录

前言

Blazor最重要的是Razor组件和cshtml页面。两个最大的区别就是cshtml是完整的html,Razor是不完整的html

微软Razor 语法官方文档

我的Blazor基础语法个人总结

C# Blazor 学习笔记(12):css样式设置

C#小轮子:Visual Studio自动编译Sass文件

基本文件配置

  • Components:组件
  • Controller:控制器/API
  • Layout:布局
  • Models:实体对象
  • Pages:页面
  • Service:服务/数据库查询
  • Utils:通用工具

引入Layout组件

语法介绍

@page

路由路径:可以多路由

csharp 复制代码
@page "/index"
//指向/index路径
<h1 class="title">Hello, world!</h1>

@code

  • @code,声明代码空间

  • xxx.razor.cs 对应文件


    Tips:partial class即部分class,编译的时候会组合成一个完整的class

Razor 语法

显式表达和隐式表达

绑定

简单绑定

java 复制代码
<h1>@Title</h1>
<button  @onclick="TitleBtn">按钮点击</button>
<h1>@RangeValue</h1>
@code{
    public string Title { get; set; } = "我是@Code Title字符串";
    /// <summary>
    /// 按钮事件
    /// </summary>
    public void TitleBtn()
    {
        Title = "我被函数改变了!";


    }
}

注意,这里的绑定是单向绑定。不是双向绑定,双向绑定需要用到@Bind语法

双向绑定

csharp 复制代码
<button  @onclick="TitleBtn">按钮点击</button>
<input type="range" min="0" max="10" @bind="RangeValue"/>
<h1>@RangeValue</h1>
@code{

    public decimal RangeValue { get; set; } = 2;
    /// <summary>
    /// 按钮事件
    /// </summary>
    public void TitleBtn()
    {
        RangeValue++;
    }
}

带参数的函数绑定

Blazor 事件处理


解决方案

@οnclick="@(e=>你的函数))"

csharp 复制代码
<h1>@Title</h1>
<button @onclick="@(e=>TitleBtn2("函数2带参数按钮点击"))">带参数按钮点击</button>

@code{
    public string Title { get; set; } = "我是@Code Title字符串";

    public void TitleBtn2(string str)
    {
        Title = str;
    }
}

依赖注入

依赖注入有两种,我们这里统一使用cs的注入方式

csharp 复制代码
        [Inject]
        [NotNull]
        private NavigationManager navigationManager { get; set; }


Blazor的路由

使用

csharp 复制代码
        public void LoginBtn()
        {
            Console.WriteLine("登录");
            navigationManager.NavigateTo("/index");
        }
相关推荐
小唐C++几秒前
C++小病毒-1.0勒索
开发语言·c++·vscode·python·算法·c#·编辑器
菜鸟记录28 分钟前
C#AWS signatureV4对接Amazon接口
c#·aws·amazon·aksk
上位机付工1 小时前
浅谈单例模式
开发语言·c#
步、步、为营2 小时前
从0到1:.NET Core微服务的Docker容器奇幻冒险
微服务·c#·asp.net·.net·.netcore
xcLeigh2 小时前
WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用
c#·wpf
Maybe_ch2 小时前
Blazo-Blazor Web App项目结构
c#·blazor
深度混淆5 小时前
C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合
开发语言·c#
chance_666 小时前
C# ASP.NET MVC项目内使用ApiController
c#
钢铁男儿10 小时前
C# 委托和事件(事件)
开发语言·c#
喜-喜11 小时前
C# HTTP/HTTPS 请求测试小工具
开发语言·http·c#