2016-03-02 24 views
0

假设我有一个使用存储资源动态文件夹结构的文件系统:的Web API 2.0动态路由

api/media/videos/file1.avi 
api/media/pictures/pic1.png 
api/documents/papers/math/paper1.txt 

正如你可以看到,有上/ API和之后的URL动态部分{文件名}参数:

/api/*/{filename} 
我目前使用的WebAPI 2.0注释

[Route("api/data/{filename}")] 

和喜爱。但它只适用于'编码'路线。

如何使用这些注释实现“动态”路由?

谢谢!

+0

类似[api/{controller}/{id}](http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web -API) –

回答

0

不知道这是否是最佳做法,但我通过在global.asax文件中使用Application_BeginRequest方法来完成此操作。您可以使用Context.RewritePath将包含的网址映射到您网站中的任何内容。您只需编写代码来解析输入的网址并进行必要的修改。