21

我习惯于使用类似于以下内容的 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 方法发送了一封电子邮件,该电子邮件为收件人提供了一个链接,以将用户引导回网站的适当部分。我显然想摆脱硬编码,因为它不适用于不同的部署,而且如果我开始更改路由,此链接将被破坏。有没有更好的方法来做到这一点?

4

1 回答 1

29

您也可以将 MVC 路由名称与 Web API UrlHelper 一起使用。例子,

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

或者

 Url.Route("Default", new { Controller = "Account", Action = "Login" });
于 2013-03-06T20:08:48.203 回答