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

前端之家收集整理的这篇文章主要介绍了vb.net – 映射以特定URL部分/关键字开头的所有路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在我的个人图书馆建立各种单元测试的测试中心,我想要一个易于访问的测试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控制器时,我只需使用“test /”添加该URL,它将知道将其重定向到我的“TestApisController”. . .但似乎已经破坏了我的默认路由.

有没有办法可以将所有以“test /”开头的路线映射到特定的控制器,同时不会破坏我的默认路由?

编辑

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

由于您尝试路由到的控制器是Web Api控制器,因此您将要将自定义路由放在WebApiConfig.vb文件中.路由应该超过该文件中的默认路由,因为它比默认路由更具体,如@Stephen Muecke所指出的.你的原始代码会改变一点,而不是routes.MapHttpRoute你会有config.Routes.MapHttpRoute,像这样:
config.Routes.MapHttpRoute( _
    name:="UnitTests",_
    routeTemplate:="test/{category}/{testname}",_
    defaults:=New With {.controller = "TestApis",.testname = UrlParameter.Optional}
)

在某些情况下,当我想要路由到特定的控制器时,我也做了同样的事情,并且在路由上还包括自定义的认证处理程序,你想做什么应该工作.

猜你在找的VB相关文章