jav*_*iry 6 c# attributerouting .net-core asp.net-core asp.net-core-webapi
在ASP.NET Core(v 2.1.5)中,您可以创建控制器,而无需从Controller
类继承(如您所知).如果你这样做,你必须RouteAttribute
用来定义你的路线.但是,如果我们可以将隐式路由(而不是属性路由)与ApiController
属性一起使用,我感兴趣.示例:具有此隐式路由Startup.cs
:
app.UseMvc(routeBuilder =>
{
routeBuilder.MapRoute("api_default", "{controller}/{action}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
还有这个 Cotroller
[ApiController]
public class ValuesController
{
[HttpGet]
public string Get(int id) => id.ToString();
}
Run Code Online (Sandbox Code Playgroud)
将抛出此异常:
InvalidOperationException:Action'TestApi.Controllers.ValuesController.Get'没有属性路由.使用ApiControllerAttribute注释的控制器上的操作方法必须是属性路由.
有没有办法避免异常?
Nko*_*osi 17
但是,如果我们可以将隐式路由(而不是属性路由)与
ApiController
属性一起使用,我感兴趣.
根据官方文件
属性路由成为一项要求.例如:
Run Code Online (Sandbox Code Playgroud)[Route("api/[controller]")] [ApiController] public class ValuesController
通过UseMvc中定义的常规路由或Startup.Configure中的UseMvcWithDefaultRoute无法访问操作.
注意:强调我的
参考使用ASP.NET Core构建Web API:属性路由要求
归档时间: |
|
查看次数: |
5187 次 |
最近记录: |