我在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,还是不可能?
答案 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}” );