我喜欢在视图中使用链接来指向区域中的 ApiController。我尝试了不同类型的注册。我尝试过不同的RouteLink
. 没有成功。独立于我如何注册以及如何尝试获取链接,总是~/
会返回。
注册:
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);
使用RouteLink
的重载:
@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 />
没有区域一切正常,但不适用于区域。
有任何想法吗?