路由
-
C++如何在模板中实现条件编译
C++模板中实现条件编译的核心是根据编译时条件选择代码路径,主要通过std::enable_if(结合SFINAE)、if constexpr(C++17)和模板特化实现。std::enable_if用于在重载决议中启用或禁用函数/模板,适用于控制函数是否参与匹配;if constexpr在函数内部…
-
Blazor 导航时通过URL传递参数的方法
Blazor导航传参主要通过路由模板实现:路径参数(如@page “/counter/{id:int}”)用于必填标识性数据,自动绑定到[Parameter]属性;查询参数需手动解析,适合非必需或动态参数;NavLink仅支持字符串插值传路径参数。 Blazor 中导航时通过…
-
SignalR怎么实现实时通信 SignalR Hub推送消息方法
SignalR 通过 Hub 建立服务端与客户端的双向长连接实现实时通信,支持自动降级传输方式。Hub 管理连接、分组与消息推送,客户端需调用 start() 并监听指定函数名接收消息。 SignalR 实现实时通信,核心就是靠 Hub(集线器) 建立服务端与客户端的双向长连接,并通过它来主动推送消…
-
ASP.NET Core怎么创建Web API ASP.NET Core创建RESTful API步骤
ASP.NET Core 创建 Web API 的核心是 Controller + [ApiController] + 模型绑定 + 内置 JSON 序列化;需新建项目、添加带特性的控制器、可选配置 JSON 和 CORS。 ASP.NET Core 创建 Web API 很简单,核心是用 Cont…
-
Minimal API怎么用 .NET 6 Minimal API入门教程
Minimal API 是 .NET 6 引入的极简 Web API 开发方式,无需 Controller 和类库结构,几行代码即可运行接口服务,适用于原型开发、微服务及轻量后台。 Minimal API 是 .NET 6 引入的极简 Web API 开发方式,不用写 Controller、不用定义…
-
C#怎么使用ValueTask C# ValueTask与Task性能对比
ValueTask 是 C# 7.0 引入的轻量级 struct,用于优化高频率、大概率同步完成的异步操作,避免 Task 的堆分配开销;适用于缓存命中、中间件等场景,但不可重复 await 或直接用于 Task 组合。 ValueTask 是什么,什么时候该用它 ValueTask 是 C# 7.…
-
Blazor 怎么在运行时切换布局
Blazor可通过RouteView动态指定DefaultLayout、StateContainer全局状态管理或CSS条件渲染实现运行时布局切换。在App.razor中用@if分支选择布局类型,或通过CascadingValue注入LayoutMode控制MainLayout内部结构显示,无需刷新…
-
Dapper如何实现分库分表下的写入操作 Dapper Sharding写入策略
Dapper本身不支持分库分表,所谓“Dapper Sharding”是开发者基于其封装的路由决策、多数据源管理与事务协调策略,核心在于写入前精准派发SQL到目标物理库表。 在分库分表场景下,Dapper 本身并不原生支持 Sharding(分片),它只是一个轻量级的 ORM 工具,专注于 SQL …
-
Blazor 怎么创建第一个应用
新手推荐从 Blazor Server 入手,用 .NET CLI 执行 dotnet new blazorserver -n MyFirstBlazor 创建项目并 dotnet run 启动,默认访问 https://www.php.cn/link/8b49217b4e704d2c40e5908…
-
Blazor AuthenticationStateProvider 使用教程
AuthenticationStateProvider是Blazor中广播用户认证状态的核心服务,需继承并重写GetAuthenticationStateAsync(),调用NotifyAuthenticationStateChanged通知UI更新,注册为Scoped(Server)或Single…