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

Blazor Server应用中是否可以使用类似MVC的Areas功能?

Blazor Server完全支持ASP.NET Core原生的Areas功能,和MVC项目中Areas的使用逻辑基本一致,完全可以用来做模块化的业务隔离。

核心使用步骤
  • 目录结构创建:在项目根目录新建Areas文件夹,每个业务模块对应Areas下的独立子目录,比如后台管理模块可以创建Areas/Admin目录,内部按照Blazor的常规目录结构,新建Pages、Shared、wwwroot(可选,放模块独立静态资源)等子目录即可。
  • 路由注册配置:在Program.cs中注册Blazor路由时,增加Area路由规则即可,示例配置如下:
// 注册Blazor Hub路由
app.MapBlazorHub();
// 为Admin区域配置独立的Fallback路由
app.MapFallbackToAreaPage("/Admin/{*clientRoute}", "~/Areas/Admin/Pages/_Host.cshtml", "Admin");
// 全局非Area路由的Fallback保留原有配置即可
app.MapFallbackToPage("/_Host");
  • 组件路由声明:Area下的Blazor页面组件,只需要在@page指令中增加对应Area的路由前缀即可,比如Admin模块的用户管理页面,路由可以声明为@page "/Admin/User/List",如果需要统一加前缀,也可以通过路由组配置实现,不需要每个组件单独写前缀。
  • 跳转逻辑适配:在组件内跳转到Area页面时,直接调用NavigationManager.NavigateTo("/Admin/User/List")即可,和普通页面跳转逻辑完全一致。
常见注意事项
  • 不建议在同一个Area下混用MVC视图和Blazor组件,如果是纯Blazor的模块化拆分,Area下只保留.razor组件、对应业务服务和静态资源即可,能最大程度避免路由冲突。
  • 建议Area下的所有页面路由都加上对应模块的前缀,避免和根目录下的Blazor页面出现路由冲突。
  • 如果需要每个Area使用独立的布局、认证规则,直接在对应Area的_Host.cshtml和_Imports.razor中单独配置即可,不需要和全局配置共用。

内容的提问来源于stack exchange,提问作者Steven Gazo M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:12:02