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

Blazor Server项目集成ASP.NET Core 7 Web API无法访问求助

Blazor Server集成ASP.NET Core 7 Web API出现404错误的修复方案

问题描述

在Blazor Server应用中集成ASP.NET Core 7 Web API时,访问地址https://localhost:44322/api/GetWeatherForecast出现404错误,页面显示:

Sorry, there's nothing at this address.

错误原因

API控制器混用了旧版ASP.NET Web API的路由特性(System.Web.Http.Route)和ASP.NET Core MVC特性,导致路由无法正确匹配;同时API控制器继承了面向MVC视图的Controller基类,不符合API控制器的最佳实践。

修复步骤

1. 清理旧命名空间引用

移除控制器中属于传统ASP.NET Web API的命名空间,它不适用于ASP.NET Core:

// 删除此行
using System.Web.Http;

2. 修正控制器路由与基类

替换路由特性为ASP.NET Core MVC专属特性,并将控制器基类改为ControllerBase(无需视图支持的API专用基类):

修改后的完整控制器代码:

using BlazorAppWebAPI.Data;
using Microsoft.AspNetCore.Mvc;

namespace BlazorAppWebAPI.API
{
    [ApiController]
    // 使用ASP.NET Core路由特性定义基础路由
    [Route("api")]
    // API控制器继承ControllerBase而非Controller
    public class APIController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};

        private readonly ILogger<APIController> _logger;

        public APIController(ILogger<APIController> logger)
        {
            _logger = logger;
        }

        // 简化HTTP请求特性,直接指定方法路由
        [HttpGet("GetWeatherForecast")]
        public IEnumerable<WeatherForecast> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

3. 确认Program.cs配置有效性

你的Program.cs已正确配置API所需服务与中间件,确保以下两行代码存在即可:

// 注册控制器服务
builder.Services.AddControllers();

// 映射控制器路由
app.MapControllers();

4. 验证路由访问

修改完成后,重新启动应用,访问https://localhost:44322/api/GetWeatherForecast即可正常获取API返回数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:13:34