BootstrapBlazor组件使用:数据注解

文章目录

前言

BootstrapBlazor(一下简称BB)是个特别好用的组件,基本上满足了大部分功能。业务逻辑上面没任何问题,官方的文档也特别详细。(你看过那种只给案例的文档你就明白什么是好文档了)

BB 官方文档

BB数据注解

BB其实是面向后端管理开发的组件,特别适合用于企业级开发。可以说是小项目的特化版组件。

推荐开发技术

  • Blazor Server (SSR):服务端渲染,前后端不分离开发。
  • BoostrapBlazor:UI组件库
  • SqlSugar:数据库

开发速度那叫一个快。不用考虑跨域,不怕安全信息泄漏(因为是SSR,浏览器只能拿到渲染结果),前端直接从后端拿数据。

唯一的问题是不支持高并发。1200人以下是安全的,如果是1200人以上的高并发,那就得上微服务了。这个是互联网开发(微服务,分布式,内存缓存)。大部分业务做不到这个水平。所以特别适合小项目

数据注解源码

BootstrapBlazor/ src / BootstrapBlazor.Shared / Data / Foo.cs

数据注解简介

  • Display
    • Name:名称
  • AutoGenerateColumn
    • Ignore 是否忽略
    • order 排序
    • FormatString:格式化
  • Required
    • ErrorMessage:检验错误报错提示

注解简单实例

BB很多数据相关的都和这个注解相关。主要看有没有Model这个数据变量。

BB 编辑弹窗

ValidateForm 表单组件

使用简介

对sqlsugar生成对象添加BB注解

csharp 复制代码
public partial class T_Joint
{

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:False
    /// </summary>           
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    [AutoGenerateColumn(Ignore =true)]
    public long Id { get; set; }

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>   
    [Display(Name = "创建时间")]

    public DateTime? CreateTime { get; set; } = DateTime.Now;

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [Display(Name = "修改时间")]

    public DateTime? Time { get; set; }= DateTime.Now;

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public bool IsDel { get; set; } = false;

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public bool IsClick { get; set; } = false;

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public int? ParentId { get; set; }

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public string Path { get; set; }

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public int? Deep { get; set; }




    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [Display(Name = "排序号")]
    public int? OrderNum { get; set; } = 0;



    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>      
    [Display(Name = "名称")]
    
    [Required(ErrorMessage ="{0}不能为空")]
    public string Name { get; set; }

    /// <summary>
    /// Desc:
    /// Default:
    /// Nullable:True
    /// </summary>           
    [AutoGenerateColumn(Ignore = true)]
    public long? UserId { get; set; }

}

使用

csharp 复制代码
//注入对话框服务
[Inject]
private DialogService DialogService { get; set; }
......

//随便一个按钮绑定一个事件

public async Task AddRootBtn()
{
    var option = new EditDialogOption<T_Joint>()
    {
        Title = "节点编辑",
        Model = new T_Joint() { },
        RowType = RowType.Inline,
        ItemsPerRow = 2,
        ItemChangedType = ItemChangedType.Update,
        Items = Items,
        
    };

    await DialogService.ShowEditDialog(option);
}

使用效果

相关推荐
tianxingzhe3715 天前
使用Radzen Blazor组件库开发的基于ABP框架炫酷UI主题
ui·blazor·abp·.net blazor·radzen blazor
景少16 天前
使用Radzen Blazor组件库开发的基于ABP框架炫酷UI主题
blazor
程序设计实验室1 个月前
Blazor Hybrid 实战体验:那些你可能没预料到的坑没预料到的坑
c#·blazor
程序设计实验室1 个月前
PC软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
c#·blazor
known1 个月前
Blazor开发框架Known-V2.0.13
blazor·known
known2 个月前
Blazor静态服务端呈现(静态SSR)身份认证
blazor
known2 个月前
Blazor开发框架Known-V2.0.10
blazor·known
lee5763 个月前
.net 8.0 下 Blazor 通过 SignalR 与 Winform 交互
blazor·signalr
known3 个月前
Blazor开发框架Known-V2.0.9
blazor·known
界面开发小八哥3 个月前
界面控件DevExpress Blazor v24.2路线图预览——支持.NET 9、新增桑基图等
.net·界面控件·blazor·devexpress·ui开发