I'm used to generating route URLs to other controller actions within an MVC controller action using something similar to below:
public class ApplicationController : Controller
{
public ActionResult Index( )
{
var url = Url.RouteUrl("routename",
new { controller = "Application", Action = "Index2" , other="other" });
}
public ActionResult Index2( string other)
{
}
}
But I also need to be able to generate URLs to MVC controller actions from within webapi too, How would I go about doing this?
There seems to be a UrlHelper property on the APIController but I cant find any examples of how to use this and have not been able to figure it out myself.
UPDATE : The reason I am trying to generate a url is that this particular webapi method sends an email which provides the recipient with a link to direct the user back to an appropriate section of the site. I obviously want to get away from hardcoding this as it will not work for different deployments and also if I begin changing the routing this link will be broken. Is there a better approach to doing this?
You can use MVC route names as well with web API UrlHelper. Example,
Url.Link("Default", new { Controller = "Account", Action = "Login" });
or
Url.Route("Default", new { Controller = "Account", Action = "Login" });
来源:https://stackoverflow.com/questions/15250186/generating-route-url-to-mvc-controller-action-from-webapi