3

我的网络应用程序中有一个名为“Admin”的区域。

因此,http ://localhost.com/Admin转到管理区域中的主控制器和索引操作。

但是,我希望能够使用以下 URL 访问 Admin Home Controller 和 Index Action:

http://localhost.com/你好

我有这个作为我的尝试:

routes.MapRoute(
            "HelloPage",
            "Hello/{controller}/{action}",
            new{area= "Admin", controller = "Home", action = "Index"},
            new[] { typeof(Areas.Admin.Controllers.HomeController).Namespace });

如您所见,我正在指定命名空间和区域,但我得到的只是路由错误:

未找到视图“索引”或其主视图,或者没有视图引擎支持搜索的位置。

它不是在管理区域中搜索。

有任何想法吗?

4

2 回答 2

5

问题是我在 Global.asax 中设置路线。

我应该在管理区域的 AreaRegistration 中设置它。一旦我这样做了,问题就解决了。

于 2012-07-22T04:28:06.427 回答
5

尝试这个:

routes.MapRoute(
       "HelloPage",
       "Hello/{controller}/{action}/{id}",
       new { area = "Admin", controller = "Home", action = "Index", id = UrlParameter.Optional }
);

然后将其添加到您的管理控制器操作中:

  if (!this.ControllerContext.RouteData.DataTokens.ContainsKey("area"))
  {
      this.ControllerContext.RouteData.DataTokens.Add("area", "Admin")
  }

您可以在此处查看更多文档。

于 2012-07-22T01:28:50.060 回答