如何为Asp.net MVC web api生成Url?
2012-09-28 13:59 JustRun 阅读(1271) 评论(0) 编辑 收藏 举报为某个Action生成Url, 可以使用Url.Action方法,就能得到针对某个Action的Url.
但是web API呢? 好像没有Url.Api方法的。
这里如果我们的web api的route是这样设置的:
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
那么我们可以这样得到web api的Url:
Url.RouteUrl( "DefaultApi", new{ httproute ="", controller ="values", id ="123"} );
注意,这里的httproute设置非常重要,没有这个会导致Url为空。
因为它回去寻找普通的Route匹配,由于找不到DefaultApi, 所以Url是空字符串。
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。