请教一个 MVC 自定义路由的问题
本帖最后由 u013043284 于 2013-12-08 11:30:52 编辑
这是一个Web Api项目 ,已经做了如下配置:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.Routes.MapHttpRoute(
"WithActionApi",
"api/{controller}/{action}/{serverfile}"
);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
希望的Url :
http://localhost:61642/api/FileService/DownLoadFile/a.exe
但是会报404,而去后后面的 .exe 能够正确调用到 DownLoadFile方法,但是这样就缺少文件的扩展名了
另外,如果最后的参数,如果是 /soft/a.exe,又该怎么办呢?
各们高手帮忙看下这个路由该怎样定义呢?谢谢
------解决方案--------------------路由是对的
你的DownLoadFile方法怎么不贴出来?
其实采用默认的api路径配置只有创建一个DownLoadFile的控制器就行了
至于文件路径 soft/a.exe a.exe等 只要在请求时候将路径base64encode一下传过来就行了
最新版本的web api里面加了restful特性
只要在方法名上加上特性[Route("~api/authors/{authorId}/books")]即可配置路由
http://www.asp.net/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing