route net mvc attribute asp asp.net-mvc asp.net-mvc-4 asp.net-web-api asp.net-mvc-routing urlhelper

asp.net-mvc - net - route web api 2 c#



Generación de URL de ruta a la acción de controlador MVC desde WebAPI (1)

Estoy acostumbrado a generar URL de ruta a otras acciones de controlador dentro de una acción de controlador MVC utilizando algo similar a lo siguiente:

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

Pero también necesito poder generar URLs para las acciones del controlador MVC desde dentro de webapi. ¿Cómo voy a hacer esto?

Parece que hay una propiedad UrlHelper en el APIController, pero no puedo encontrar ningún ejemplo de cómo usar esto y no he podido resolverlo por mi cuenta.

ACTUALIZACIÓN: El motivo por el que intento generar una url es que este método webapi en particular envía un correo electrónico que proporciona al destinatario un enlace para dirigir al usuario a una sección apropiada del sitio. Obviamente, quiero alejarme de la codificación rígida, ya que no funcionará en diferentes implementaciones y, además, si comienzo a cambiar la ruta, se romperá este enlace. ¿Hay un mejor enfoque para hacer esto?


También puede usar nombres de rutas MVC con API web UrlHelper. Ejemplo,

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

o

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