Bla*_*ell 4 asp.net c#-4.0 asp.net-web-api
我有一个带有Get方法的WebAPI控制器,如下所示:
public class MyController : ApiController
{
public ActionResult Get(string id)
{
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我们面临的挑战是尝试使用Web API实现WebDAV.这意味着当用户浏览文件夹结构时,URL将更改为:
/api/MyController/ParentFolder1/ChildFolder1/item1.txt
有没有办法将该操作路由到MyController.Get并提取出路径,以便我得到:
Run Code Online (Sandbox Code Playgroud)ParentFolder1/ChildFolder1/item1.txt
谢谢!
Nen*_*nad 13
"动态"路线不是问题.只需使用通配符:
config.Routes.MapHttpRoute(
name: "NavApi",
routeTemplate: "api/my/{*id}",
defaults: new { controller = "my" }
);
Run Code Online (Sandbox Code Playgroud)
应在默认路由之前添加此路由.
问题是您希望以文件扩展名结束URL.它将被解释为对.txt文件的静态请求.在IIS7 +中,您可以通过在web.config中添加行来解决此问题:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)
不要忘记,如果你使用MyController,那么路段只是"我的"
| 归档时间: |
|
| 查看次数: |
5342 次 |
| 最近记录: |