WebAssembly客户端读取服务器文本文件时传参遇404错误求助
解决ASP.NET Core API 404错误的问题
问题根源:路由不匹配
你的控制器路由配置错误,导致客户端请求地址和实际API地址不对应:
- 控制器上的
[Route("api/controller")]是固定字符串,实际生成的API路径是api/controller/{filename} - 客户端请求的是
api/ReadText/Euler13.txt,两者路径完全不匹配,所以返回404
修复步骤
1. 修改控制器的路由属性
把控制器上的Route属性改成带占位符的形式,让框架自动替换控制器名称:
namespace Training.Server.Controllers { // 将 "api/controller" 修改为 "api/[controller]" [Route("api/[controller]")] [ApiController] public class ReadTextController : Controller { [HttpGet("{filename}")] public string[] Getfile(string filename) { string[] ret = new string[3]; ret[0] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"; ret[1] = "bbbbbbbbbbbbbbbbbbbbb"; ret[2] = "ccccccccccccccccccccccccccccccccccccc"; return ret; } } }
这里的[controller]是ASP.NET Core的路由占位符,会自动替换为控制器类名的前缀(ReadTextController → ReadText),修改后API的实际路径就是api/ReadText/{filename},和客户端请求的地址完全匹配。
2. 验证请求
修改后客户端代码不需要改动,直接运行即可。也可以在浏览器里直接访问https://你的服务器地址/api/ReadText/Euler13.txt,看是否能返回预期的字符串数组,快速排查问题。
额外小提示
如果你的项目配置了Swagger,可以打开Swagger页面查看生成的API路径,确认路由是否正确配置,这对新手调试API很有帮助。
内容的提问来源于stack exchange,提问作者Shipmate
相关产品推荐
相关产品推荐

