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");
        }
相关推荐
bugcome_com17 小时前
C# 反射(Reflection)超全解析
c#
bjzhang7519 小时前
Dorisoy.AMS--一款采用C# WinForm框架+SQLite数据库的企业/机构资产管理解决方案
sqlite·c#·资产管理
luming-0219 小时前
java报错解决:sun.net.utils不存
java·经验分享·bug·.net·intellij-idea
零度@20 小时前
Java消息中间件-Kafka全解(2026精简版)
java·kafka·c#·linq
2501_9418824821 小时前
在开普敦跨区域部署环境中构建高可靠分布式配置中心的设计思路与实现实践
开发语言·c#
zxy28472253011 天前
利用C#的BotSharp本地部署第一个大模型AI Agent示例(1)
人工智能·c#·对话·ai agent·botsharp
刘97531 天前
【第25天】25c#今日小结
java·开发语言·c#
步步为营DotNet1 天前
深度解析.NET中MemoryCache:高效缓存策略与性能优化的关键
缓存·性能优化·.net
玩泥巴的1 天前
基于.NET操作Excel COM组件生成数据透视报表
c#·.net·excel·二次开发·com互操作
马达加斯加D1 天前
分布式系统开发核心问题总结
c#