4

我在 MVC 上苦苦挣扎——我喜欢它——它的特性。我正在尝试在 Application_Start 事件中加载菜单。我想用正确的 url (controllerName/actionName) 加载一些链接,但我不能使用 Url.Action 或其他方法来构建路径。

有谁能够帮我?

4

2 回答 2

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
}
于 2009-11-26T13:39:18.237 回答
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 指向缓存的操作或类似的操作。

于 2009-11-26T13:46:27.487 回答