如何为Asp.net MVC web api生成Url?

为某个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是空字符串。

你可能感兴趣的:(asp.net)