Esta es la solución más válida que encomtrarás brindar, sin embargo obsérvala detenidamente y analiza si se puede adaptar a tu trabajo.
Solución:
Tal vez el ayudante más cercano a Url.Action en Web Api Controller es el método Url.Link que generará la url por Nombre de ruta, Nombre de controlador, Nombre de acción y los parámetros de ruta (si es necesario).
Aquí hay un ejemplo simple
El App_start/RouteConfig.cs predeterminado
routes.MapRoute(
name: "Default",
url: "controller/action/id",
defaults: new controller = "Home", action = "Index", id = UrlParameter.Optional
);
El controlador Web Api:
public class MyWebApiController : ApiController
public string Get()
var url = this.Url.Link("Default", new Controller = "MyMvc", Action = "MyAction", param1 = 1, param2 = "somestring" );
return url;
El controlador MVC
public class MyMvcController : Controller
public ActionResult MyAction(int param1, string param2)
// ...
La url generada por el controlador WebApi será http://myDomain/MyMvc/MyAction?param1=1¶m2=somestring
.
No encontré cómo pasar el protocolo/esquema de URL pero en el y será solo un string y puede manipularlo si sabe cuál debería ser el protocolo.
Espero que esto ayude.
EDITAR:
Esto puede ayudar para la parte del protocolo: generar un enlace HTTPS en la API web usando Url.Link
Te mostramos comentarios y valoraciones
Acuérdate de que tienes la capacidad de valorar este ensayo si te fue preciso.