На основе Как создать URL веб-API ASP.NET?
Ни один из них плюс несколько других комбинаций из них, которые я пробовал, работает
<li><a href="@Url.RouteUrl("DefaultApi",new {area=string.Empty,httproute = string.Empty, controller = "corpuserrequest", action="Get"})">CorpUser</a></li>
<li><a href="@Url.Action("Get","CorpUserRequest",new {area=string.Empty,httproute ="", controller = "CorpUserRequest", action="Get"})">CorpUser</a></li>
Здесь моя таблица маршрутов api config:
//https://stackoverflow.com/info/11407267/multiple-httppost-method-in-mvc4-web-api-controller
config.Routes.MapHttpRoute(
name: "ApiReq",
routeTemplate: "webapi/{controller}/{action}",
defaults: null,
constraints: new { action = "Req" }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new
{
id = @"^\d*$",// Only integers
action = "^(?![rR]eq)$" //anything except req or Req
}
);
Почему не работает маршрутизация? RouteUrl возвращает пустую строку или null, действие возвращает
<a href="#" onclick="location.href='http://localhost:11601/CorpUserRequest/Get'; return false;">
вместо фактического URL-адреса должен быть http://localhost:11601/api/CorpUserRequest