我正在使用ASP.NET Core来提供这样的SPA:
[<Route("{*url}")>]
member this.Index () =
this.View("~/wwwroot/Index.cshtml")
我的JSON端点位于同一个应用中,路由如下:
[<Route("api/something/{somethingId:int})>]
这很好,除了当我尝试调用端点api/something/that/doesnt/exist
时,当我真正想要404时,我会得到索引页。
是否可以设置[<Route("{*url}")>]
以排除任何以“api”开头的网址?
答案 0 :(得分:7)
您应该使用Route Constraints。有一个正则表达式选项,您可以使用它来过滤掉API调用(您不想要的)。
然后你需要做一个否定的预测来否定一个字符串。
[<Route("{*url:regex(^(?!api).*$)}")>]