我正在努力与MVC - 我喜欢 - 并且它的功能。 我正在尝试在Application_Start事件中加载菜单。 我想用正确的URL(controllerName / actionName)加载一些链接,但我不能使用Url.Action或其他方法来构建路径。
有人能帮助我吗?
答案 0 :(得分:5)
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
var context = new HttpContextWrapper(HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(context) ?? new RouteData();
var requestContext = new RequestContext(context, routeData);
var urlHelper = new UrlHelper(requestContext);
var url = urlHelper.Action("Home", "Index");
// TODO: do something with the url
}
答案 1 :(得分:5)
为什么要在application_start中构建菜单?它是否适合某种缓存?无论如何这里.. ..
RegisterRoutes(RouteTable.Routes);
var httpContext = new HttpContextWrapper(HttpContext.Current);
UrlHelper urlHelper = new UrlHelper( new RequestContext(httpContext, new RouteData()));
var urlToHome = urlHelper.RouteUrl("Home");
我宁愿建议在你的母版页上做一个RenderAction,指向一个缓存的动作,或类似的东西。