在ASP.NET核心(v2.1.5)中,您可以创建控制器,而无需继承Controller类(如您所知)。如果您这样做了,您必须使用RouteAttribute来定义您的路由。但是,我感兴趣的是,我们是否可以一起使用隐式路由(而不是属性路由)以及ApiController属性。示例:在Startup.cs中使用此隐式路由
app.UseMvc(routeBuilder =>
{
routeBuilder.MapRoute("api_default", "{controller}/{action}/{id?}");
});而这个Cotroller
[ApiController]
public class ValuesController
{
[HttpGet]
public string Get(int id) => id.ToString();
}将引发此异常:
InvalidOperationException:动作'TestApi.Controllers.ValuesController.Get‘没有属性路由。对带有ApiControllerAttribute注释的控制器的操作方法必须是属性路由。
有什么办法可以避免例外吗?
发布于 2018-10-29 00:05:16
但是,我感兴趣的是,我们是否可以一起使用隐式路由(而不是属性路由)以及
ApiController属性。
根据官方文件
属性路由成为一种需求。例如: 路由(“api/[控制器]”)公共类ValuesController 操作通过UseMvc中定义的传统路由或Startup.Configure.中的UseMvcWithDefaultRoute无法访问。
注:emphasis
发布于 2022-10-29 06:38:53
也可以使用
路由(“api/VillaAPI”)
在控制器名称硬
https://stackoverflow.com/questions/53037126
复制相似问题