C#.net OWIN - 使用通配符动态URL为WebAPI启动路由

时间:2017-08-06 07:24:56

标签: c# asp.net asp.net-web-api asp.net-mvc-routing owin

我在OWIN中托管了一个WebApi,我想知道是否可以将URL的开头设置为"通配符",例如,如果我有一个名为&#34的WebAPI; GetUsers&# 34;,访问我的WebAPI的人可以输入:

__attribute__ ((__vector_size__ (16), __may_alias__, aligned(1) ))

并且所有路线都会将他带到GetUsers。这可能吗?我尝试了向函数添加http://localhost/blah-blah-blah/api/GetUsers http://localhost/api/GetUsers http://localhost/ABC/api/GetUsers 之类的内容,但它似乎无法正常工作,在WebAPIConfig中尝试了相同的操作 - >

[Route("{*uri}/api/GetUsers")]

但这也不起作用。

有没有办法用"通配符起始网址#34;创建一个WebAPI,还是不可能?

2 个答案:

答案 0 :(得分:1)

请勿在建议的路线模板中使用*。这会引起冲突。 {prefix}/api/{controller}/{action}适用于您的第一和第三选项。路径模板中间不允许使用可选占位符,因此您必须单独注册api/{controller}/{action}

config.Routes.MapHttpRoute(
    name: "PrefixedControllerAndAction", 
    routeTemplate: "{prefix}/api/{controller}/{action}"
); 

config.Routes.MapHttpRoute(
    name: "ControllerAndAction", 
    routeTemplate: "api/{controller}/{action}"
);

答案 1 :(得分:1)

config.Routes.MapHttpRoute(     名称:“ControllerAndAction”,     routeTemplate:“{* uri} / api / {controller} / {action}” );