当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 基本文件配置
    • 引入Layout组件
  • 语法介绍
    • @page
    • @code
    • Razor 语法
      • [ 显式表达和隐式表达](https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-7.0#explicit-razor-expressions)
    • 绑定
      • 简单绑定
      • 双向绑定
      • 带参数的函数绑定
    • 依赖注入

前言

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

路由路径:可以多路由

@page "/index"
//指向/index路径
<h1 class="title">Hello, world!</h1>

@code

  • @code,声明代码空间
    在这里插入图片描述

  • xxx.razor.cs 对应文件
    在这里插入图片描述
    在这里插入图片描述
    Tips:partial class即部分class,编译的时候会组合成一个完整的class

Razor 语法

显式表达和隐式表达

在这里插入图片描述

绑定

简单绑定

<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语法

双向绑定


<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=>你的函数))”


<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的注入方式

        [Inject][NotNull]private NavigationManager navigationManager { get; set; }

在这里插入图片描述
Blazor的路由

使用

        public void LoginBtn(){Console.WriteLine("登录");navigationManager.NavigateTo("/index");}
http://www.lryc.cn/news/122564.html

相关文章:

  • Leetcode-每日一题【剑指 Offer 25. 合并两个排序的链表】
  • 前端盒子模型
  • 【ARM Cache 系列文章 9 -- ARM big.LITTLE技术】
  • 【BASH】回顾与知识点梳理(十四)
  • 乡村振兴指数与其30余个原始变量数据(2000-2022年)
  • 深入理解MySQL表的操作和管理
  • MATLAB图论合集(一)基本操作基础
  • Redis布隆过滤器的原理和应用场景,解决缓存穿透
  • 数据结构中的英文缩写和易忘的专有名词
  • Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息
  • MODBUS TCP转CCLINK IE协议网关cclink通讯异常的处理方法
  • linux中的ifconfig和ip addr
  • 图像多目标跟踪
  • 42 | 航空公司客户价值分析
  • 第三章 图论 No.11二分图,匈牙利算法与点覆盖
  • Die2Die(D2D)和chip2chip(C2C)之间的高速互联接口
  • JAVA设计模式汇总
  • 【实战讲解】数据血缘落地实施
  • Java课题笔记~ ServletContext
  • 设备取电芯片LDR6328Q
  • Redis 事务、持久化、复制原理分析
  • 初识鸿蒙跨平台开发框架ArkUI-X
  • uniapp开发小程序-分包(微信错误码:800051)
  • n-皇后问题
  • JS如何向数组中添加数组
  • 串口通信收发项目级一
  • 设计模式之七:适配器模式与外观模式
  • FFmpeg接收UDP码流
  • 【Pytroch】基于支持向量机算法的数据分类预测(Excel可直接替换数据)
  • 【Git】git初始化项目时 | git默认创建main分之 | 如何将git默认分支从main改为master