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

ASP.NET Core托管Blazor WASM服务器控制器特定路由未触发问题

问题分析与解决方法

1. 语法错误导致Action未注册

你的GetPagedBlogs方法存在明显语法错误:

return Ok(blogs ;

这里缺少闭合的右括号,正确写法应为:

return Ok(blogs);

该错误会导致编译器无法正确编译此Action方法,ASP.NET Core也就无法为其注册对应的路由端点,自然无法触发请求。

2. 异步方法未遵循异步规范

方法声明为async Task<ActionResult<List<Blog>>>,但内部调用了同步的ToList()方法,不符合异步编程规范,可能引发线程阻塞问题。应替换为EF Core的异步查询方法:

[HttpGet("GetPagedBlogs")]
public async Task<ActionResult<List<Blog>>> GetPagedBlogs()
{
    var blogs = await _context.Blogs.OrderByDescending(x => x.Created).ToListAsync();
    return Ok(blogs);
}

3. 路由与请求路径验证

控制器路由[Route("api/[controller]")]与Action路由[HttpGet("GetPagedBlogs")]组合后,正确请求路径为https://mydomain/api/blog/GetPagedBlogs,确认请求时路径拼写、大小写(ASP.NET Core默认不区分大小写,但建议保持一致)无误。

4. 中间件顺序确认

你的program.cs中间件顺序配置正确:UseRouting()之后依次调用MapRazorPages()、MapControllers()、MapFallbackToFile("index.html"),此顺序保证API控制器路由能被正确匹配,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:03:24