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

.NET 8 Blazor Server项目中Web API无法访问问题排查

解决方案

1. 配置Server项目的API服务与路由

Blazor Server默认未启用API控制器的路由支持,需在Program.cs中添加以下配置:

  • 在服务注册阶段添加控制器服务:
builder.Services.AddControllers();
  • 在中间件管道中添加控制器路由映射(注意顺序,需放在UseRouting()之后,MapBlazorHub()之前):
app.UseRouting();

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

app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

2. 检查API控制器的属性配置

确保你的控制器类满足以下要求:

  • 继承ControllerBase基类
  • 标记[ApiController]属性以启用API控制器特性(如自动模型验证)
  • 配置正确的路由属性,示例代码:
[ApiController]
[Route("api/[controller]")] // 此路由会生成`api/testdata`(对应控制器类名TestDataController)
public class TestDataController : ControllerBase
{
    [HttpGet]
    public IActionResult GetTestData()
    {
        return Ok(new { Data = "示例数据" });
    }
}

3. 优化客户端调用路径

Blazor Server项目中客户端与API同域,建议使用相对路径调用,避免硬编码端口号导致的错误,Razor组件示例:

@inject HttpClient Http

<button @onclick="FetchData">获取数据</button>

@code {
    private async Task FetchData()
    {
        var data = await Http.GetFromJsonAsync<object>("/api/testdata");
        // 处理返回数据
    }
}

完成以上配置后,重新启动项目即可正常调用API接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:14:56