控制器方法使用[Route("")]报错,与学校示例运行结果不符
解决控制器方法[Route]特性无效的问题
问题原因
你遇到的错误源于两个核心问题:
- 控制器类未继承ASP.NET MVC/WebAPI的控制器基类(
Controller或ControllerBase),框架无法识别类内方法为可路由的Action - 错误引用了Blazor的命名空间(
Microsoft.AspNetCore.Components),ASP.NET路由特性实际归属Microsoft.AspNetCore.Mvc命名空间
修正方案
按以下步骤调整代码:
- 替换命名空间引用,移除Blazor相关命名空间,添加MVC命名空间
- 让控制器继承
Controller(MVC场景)或ControllerBase(WebAPI场景)
修正后的代码
using Microsoft.AspNetCore.Mvc; namespace HelloCoreEmpty.Controllers { [Route("about")] public class AboutController : Controller { [Route("")] public string Phone() { return "Test"; } } }
补充说明
- 继承基类后,框架会将类中的公共方法识别为Action,此时方法上的
[Route]特性才能正常生效 - 若为WebAPI项目,继承
ControllerBase即可,无需Controller包含的视图相关功能
内容的提问来源于stack exchange,提问作者Dylan Lucas
相关产品推荐
相关产品推荐

