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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-26
  • 2021-10-20
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
猜你喜欢
  • 2021-10-28
  • 2021-08-10
  • 2021-12-26
  • 2022-02-19
  • 2021-08-30
  • 2022-12-23
  • 2022-01-09
相关资源
相似解决方案