gpt4 book ai didi

vb.net - 映射所有以特定 URL 部分/关键字开头的路由

转载 作者:行者123 更新时间:2023-12-03 20:59:33 26 4
gpt4 key购买 nike

我正在为我的个人库上的各种单元测试构建一个测试中心,并且我想要一个易于访问的测试 API 路径。所以我的路由配置中有两个条目:默认路由和我的自定义路由...

routes.MapRoute(
name:="Default",
url:="{controller} / {Action} / {id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)

routes.MapHttpRoute(
name:="UnitTests",
routeTemplate:="test/{category}/{testname}",
defaults:=New With {.controller = "TestApis", .action = "testme",
.category = "TestCategoryOne", .testname = UrlParameter.Optional}
)

这个想法是,每当我想调用我的测试 API Controller 时,我只需在 URL 前面加上“test/”,它就会知道将它重定向到我的“TestApisController”。 . .但它似乎打破了我的默认路线。



有没有一种方法可以将所有以“test/”开头的路由映射到特定 Controller ,同时又不破坏我的默认路由?

编辑

所以过了一段时间,我意识到这种方法不起作用的原因与路线无关。我在“WebApiConfig”文件中定义了另一个导致一些问题的默认 API 路由。抱歉,我仍在从 Webforms 过渡到 MVC。

最佳答案

由于您尝试路由到的 Controller 是 Web Api Controller ,因此您需要将自定义路由放在 WebApiConfig.vb 中。文件。正如@Stephen Muecke 指出的那样,该路由应该高于该文件中的默认路由,因为它比默认路由更具体。您的原始代码会稍微改变,而不是 routes.MapHttpRoute你会有 config.Routes.MapHttpRoute , 像这样:

config.Routes.MapHttpRoute( _
name:="UnitTests", _
routeTemplate:="test/{category}/{testname}", _
defaults:=New With {.controller = "TestApis", .action = "testme", .category = "TestCategoryOne", .testname = UrlParameter.Optional}
)

当我想在某些情况下路由到特定 Controller 并在路由上包含自定义身份验证处理程序时,我已经做了同样的事情,您尝试做的应该可以工作。

关于vb.net - 映射所有以特定 URL 部分/关键字开头的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com