I like to use a link in a view to point a ApiController in an Area. I've tried different kinds of registration. I've tried different overloads of RouteLink
. No success. Independent how I register and how I try to get the Link, always ~/
is returned.
Registrations:
var route1 = context.Routes.MapHttpRoute(
"IpixDictionary_api1",
"ipixdic/api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional },
new[] { "WinGD.AppCenter.Areas.IpixDictionary.Controllers" });
var route2 = context.Routes.MapHttpRoute(
"IpixDictionary_api2",
"ipixdic/api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional },
new[] { "WinGD.AppCenter.Areas.IpixDictionary.Controllers" });
if (route2.DataTokens == null)
{
route2.DataTokens = new RouteValueDictionary();
}
route2.DataTokens.Add("area", context.AreaName);
Used RouteLink
overloads:
@Html.RouteLink("Test11", "IpixDictionary_api1", new { httproute = true, controller = "EnginesApi" })
@Html.RouteLink("Test12", "IpixDictionary_api1", new { httproute = true, controller = "EnginesApi" }, null)
@Html.RouteLink("Test13", "IpixDictionary_api1", new { httproute = true, controller = "EnginesApi", area = "IpixDictionary" })
@Html.RouteLink("Test14", "IpixDictionary_api1", new { httproute = true, controller = "EnginesApi", area = "IpixDictionary" }, null)
<br />
@Html.RouteLink("Test21", "IpixDictionary_api2", new { httproute = true, controller = "EnginesApi" })
@Html.RouteLink("Test22", "IpixDictionary_api2", new { httproute = true, controller = "EnginesApi" }, null)
@Html.RouteLink("Test23", "IpixDictionary_api2", new { httproute = true, controller = "EnginesApi", area = "IpixDictionary" })
@Html.RouteLink("Test24", "IpixDictionary_api2", new { httproute = true, controller = "EnginesApi", area = "IpixDictionary" }, null)
<br />
Everything works fine Without Areas, But it won't work with Areas.
Any ideas?