You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor .NET 9 Auto渲染模式下无Shared项目的数据交互疑问

.NET 9 Blazor Auto模式(Server+Wasm)相关问题解答

为什么默认没有Shared项目?

.NET 9对Blazor Auto模式的项目结构做了简化,官方把Layout、Pages这类通用UI组件直接放在Client项目中,让整体结构更轻量化。因为Auto模式下,Client项目本身既要承载Wasm运行时的前端逻辑,也要兼容Server端初始渲染的UI复用,所以不需要额外的Shared项目来存放UI相关内容。

客户端能否直接操作共享数据库?

不行。Wasm运行在浏览器沙箱环境中,无法直接访问外部数据库(既存在网络权限限制,也有严重的安全风险,比如暴露数据库连接字符串)。所以与共享数据库交互必须通过Server端的中转:

  • 在Server项目中编写DataService封装数据库操作逻辑
  • 或者创建API控制器/最小API,提供数据接口供Client调用
  • Client端通过HttpClient请求这些接口来获取或提交数据

是否需要创建Shared项目共享数据层类?

取决于你的项目复杂度:

  • 如果存在需要在Server和Client之间共享的代码(比如数据传输对象DTO、业务枚举、通用校验工具等),建议创建单独的Shared类库项目,同时被Server和Client项目引用,避免重复编码,保证类型一致性。
  • 如果是简单场景,仅少量模型需要共享,也可以把模型类放在Server项目中,Client通过API接收序列化后的对象,但这种方式不利于代码维护,长期来看还是Shared项目更规范。

内容的提问来源于stack exchange,提问作者Luca C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:15:56