我习惯于使用类似于以下内容的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",Action = "Login" });