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

如何向VS2019默认生成的ASP.NET Blazor Server解决方案中添加Web API

关于你当前方案的兼容性

你现在打算用的options.EnableEndpointRouting = false + app.UseMvcWithDefaultRoute()方案不属于官方推荐、未来兼容的方案。这是.NET Core 2.x时代的MVC旧式路由配置,微软从.NET 5开始就已经标记为不推荐使用,后续.NET 8及更高版本会逐步移除相关废弃API,后续升级项目时会遇到兼容问题。


官方推荐的Blazor Server集成Web API最佳方案

该方案适用于.NET Core 3.1到最新.NET 8的所有版本,完全受官方支持,未来版本也会保持兼容:

  • 步骤1:在Blazor Server项目根目录创建Controllers文件夹(命名无强制要求,叫API也可)
  • 步骤2:右键文件夹添加新项,选择「Web API控制器」,正常编写数据接口即可,控制器保留默认的[ApiController]、[Route("api/[controller]")]特性标注即可
  • 步骤3:修改服务配置:
    如果你用的是VS2019默认生成的.NET Core 3.x版本Startup.cs,在ConfigureServices方法中添加即可:
    services.AddControllers();
    
    不需要修改EnableEndpointRouting配置,也不需要额外设置兼容版本。
  • 步骤4:修改中间件配置,在Configure方法的UseEndpoints回调中添加控制器路由映射:
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers(); // 仅需添加这一行
        endpoints.MapBlazorHub();
        endpoints.MapFallbackToPage("/_Host");
    });
    
    完全不需要加app.UseMvcWithDefaultRoute()配置。

如果后续你升级到.NET 6+版本,配置逻辑也完全一致,仅需在Program.cs对应位置添加服务注册和路由映射即可,不需要修改接口代码。针对你用SyncFusion DataGrid绑定数据的场景,该方案返回的接口格式和你原本打算用的旧MVC路由方案完全一致,不需要调整前端绑定逻辑即可直接使用。


内容的提问来源于stack exchange,提问作者OpTech Marketing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:57:03