bh002- Blazor hybrid / Maui 保存设置快速教程

news/2024/7/20 20:01:46 标签: blazor, xamarin, Android, ios, uwp, winforms, wpf

1. 建立工程 bh002_ORM

源码

2. 添加 nuget 包

<PackageReference Include="BootstrapBlazor.WebAPI" Version="7.*" />
<PackageReference Include="FreeSql" Version="*" />
<PackageReference Include="FreeSql.Provider.SqliteCore" Version="*" />
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.*" />

3. 添加命名空间引用

_Imports.razor

@using BootstrapBlazor.Components

4. 添加服务

MauiProgram.cs

在 return builder.Build(); 之前加入这句

builder.Services.AddScoped<IStorage, StorageService>();

5. 添加代码后置文件 Pages/Index.razor.cs

Index.razor.cs

using BootstrapBlazor.WebAPI.Services;
using Microsoft.AspNetCore.Components;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;

namespace bh002_ORM.Pages;

public partial class Index
{
    [Inject, NotNull] protected IStorage Storage { get; set; }

    [DisplayName("用户名")]
    [Required(ErrorMessage = "请输入用户名")]
    public string Username { get; set; }

    IFreeSql Fsql { get; set; }

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            Username = await Storage.GetValue("username","");
            if (!string.IsNullOrEmpty(Username))
            {
                StateHasChanged();
            }
        }
    }

    async Task Login()
    {
        await Storage.SetValue("username", Username);
    } 
}

6. 添加 UI

Index.razor

@page "/"
<h1>Hello, @Username</h1>
用户名:
<InputText @bind-Value="Username" />
<button @onclick="Login">登录</button>

7. 执行效果

8. 添加清除按钮

Index.razor

<button @onclick="Reset">清除</button>

Index.razor.cs

    async Task Reset()
    {
        await Storage.RemoveValue("username");
        Username = "";
    }

9. 相关资料

如何远程调试 MAUI blazor / Blazor Hybrid
https://www.cnblogs.com/densen2014/p/16988516.html

下篇 bh002- Blazor hybrid / Maui 使用ORM和数据库快速教程


http://www.niftyadmin.cn/n/4958072.html

相关文章

八股文之计算机网络

TCP/IP 网络模型有哪几层 该模型用来解决不同设备间的进程通信&#xff0c;就需要网络通信&#xff0c;该模型就应运而生。首先是应用层&#xff0c;我们所接触的App都是在这一层实现的&#xff0c;当不同的设备需要通信时&#xff0c;就需要把数据发给传输层&#xff0c;传输…

光伏发电+boost+储能+双向dcdc+并网逆变器控制(低压用户型电能路由器仿真模型)【含个人笔记+建模参考】

MATALB代码链接&#xff1a;光伏发电boost十储能十双向dcdc十并网逆变器 个人笔记与建模参考请私信发送 包含Boost、Buck-boost双向DCDC、并网逆变器三大控制部分 boost电路应用mppt&#xff0c; 采用扰动观察法实现光能最大功率点跟踪 电流环的逆变器控制策略 双向dcdc储能系…

如何进行电脑文件夹分类与整理?

本科电脑用了四年&#xff0c;毕业后发现空间很满&#xff0c;但是真正有用的东西仿佛就一点。好像是在学开发的时候&#xff0c;听到一个老师说&#xff0c;根目录不要放太多文件夹&#xff0c;不然就相当于没有根目录了。刚好研究生有了新的台式电脑&#xff0c;开始有规划的…

阿里云通用算力型u1云服务器CPU性能详细说明

​阿里云服务器u1是通用算力型云服务器&#xff0c;CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器&#xff0c;通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xff…

阿里巴巴国际站商品详情接口,商品列表接口(免费测试)

随着全球经济的发展和互联网技术的进步&#xff0c;跨境电商已经成为了许多企业拓展市场、实现增长的重要方式。阿里巴巴国际站作为全球知名的跨境电商平台&#xff0c;为各类企业和消费者提供了便捷高效的贸易服务。其中&#xff0c;商品详情接口和商品列表接口是阿里巴巴国际…

API接口漏洞利用及防御

API是不同软件系统之间进行数据交互和通信的一种方式。API接口漏洞指的是在API的设计、开发或实现过程中存在的安全漏洞&#xff0c;可能导致恶意攻击者利用这些漏洞来获取未授权的访问、篡改数据、拒绝服务等恶意行为。 1.API接口漏洞简介 API&#xff08;Application Progr…

BLFS学习系列 第25章. 图形环境库 —— libdrm

一、简介 libdrm提供了一个用户空间库&#xff0c;用于在支持ioctl接口的操作系统上访问直接渲染管理器&#xff08;DRM&#xff09;。libdrm是一个低级别库&#xff0c;通常由图形驱动&#xff08;程序&#xff09;使用&#xff0c;如Mesa DRI驱动&#xff08;程序&#xff0…

JavaWeb-特殊文件(propertis与XML)

目录 Properties文件 一.properties介绍 二.properties使用 三.解决中文乱码问题 XML文件 一.XML介绍 二.XML文件的语法规则 三.XML的使用 Properties文件 一.properties介绍 1.什么是properties文件 Properties文件是一种常用的配置文件格式&#xff0c;用于存储键值…