sev*_*rin 3 asp.net routing asp.net-core-mvc asp.net-core asp.net-core-webapi
我正在使用ASP.NET Core来提供这样的SPA:
[<Route("{*url}")>]
member this.Index () =
this.View("~/wwwroot/Index.cshtml")
Run Code Online (Sandbox Code Playgroud)
我的JSON端点位于同一个应用程序中,路由如下:
[<Route("api/something/{somethingId:int})>]
Run Code Online (Sandbox Code Playgroud)
这工作正常,除了当我尝试调用端点时,api/something/that/doesnt/exist我得到索引页面,当我真正想要404.
是否可以以[<Route("{*url}")>]这样的方式设置它排除以"api"开头的任何URL?
您应该使用Route Constraints.有一个正则表达式选项,您可以使用它来过滤掉API调用(您不想要的).
然后你需要做一个否定的预测来否定一个字符串.
[<Route("{*url:regex(^(?!api).*$)}")>]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |