Asp.net-Mvc

從 WebAPI 生成路由 URL 到 MVC 控制器操作

  • March 6, 2013

我習慣於使用類似於以下內容的 MVC 控制器操作中的其他控制器操作生成路由 URL:

public class ApplicationController : Controller
{
   public ActionResult Index( )
   {
       var url = Url.RouteUrl("routename",
          new { controller = "Application", Action = "Index2" , other="other" });
   }

   public ActionResult Index2( string other)
   {
   }
}

但是我還需要能夠從 webapi 中生成 MVC 控制器操作的 URL,我將如何去做呢?

APIController 上似乎有一個 UrlHelper 屬性,但我找不到任何有關如何使用它的範例,並且我自己也無法弄清楚。

更新:我試圖生成一個 url 的原因是這個特定的 webapi 方法發送了一封電子郵件,該電子郵件為收件人提供了一個連結,以將使用者引導回網站的適當部分。我顯然想擺脫硬編碼,因為它不適用於不同的部署,而且如果我開始更改路由,此連結將被破壞。有沒有更好的方法來做到這一點?

您也可以將 MVC 路由名稱與 Web API UrlHelper 一起使用。例子,

Url.Link("Default", new { Controller = "Account", Action = "Login" });

要麼

Url.Route("Default", new { Controller = "Account", Action = "Login" });

引用自:https://stackoverflow.com/questions/15250186