我想这将是相当容易的,但我完全莫名其妙。

我想一个控制器的观点是在本申请的根级别,而不是在该控制器的子目录,但我不能弄清楚。

我想有这些两个网址:

/信息 - 这应该在控制器操作 “信息”, “家”

/管理/ - 这应该是对控制器 “系统管理员” 动作 “索引”(缺省)

到目前为止,不管是什么我已经试过,第一条路最终会赶上两个。我似乎无法将两者分离。

这是信息页面甚至不需要控制器,它是静态的,但我想用一个母版页。有可能是把这个功能更简单的方法,但我还没有想通了这一点无论是。

所有我能想到的,会工作,会创建一个信息控制器和移动浏览/首页/信息来查看/信息/索引,而是具有一定的气味了。

我能够使用执行此操作在轨道:

  map.connect ':controller/:action/:id'
  map.connect ':action', :controller => 'home'
有帮助吗?

解决方案

您只需要正确的路线。在你的情况:

routes.MapRoute(
                "Info",
                "Info",
                new { controller = "Home", action = "Info" }

routes.MapRoute(
                "Admin",
                "Admin",
                new { controller = "Admin", action = "Index" }

但我建议你这个方法。

如果您需要更改默认的视图物理位置/ partialviews,点击 检查出如何的创建自定义视图引擎。

其他提示

可以使用的路由属性。

在你的路线的配置文件,你应该有。

        routes.MapMvcAttributeRoutes();
        AreaRegistration.RegisterAllAreas();
        //code below should already be in your route config by default
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

然后每一个动作上面可以有一个路由属性。

 [Route("info")]

您甚至可以得到具有这些属性通过添加参数更先进,和/或子文件夹

 [Route("blog/posts/{postId}")]

您可以把任何上述行动属性,就好像它是从博客控制器源于它就会出现。但是,你甚至不需要一个博客控制器。另外,{}表示的参数,所以只要确保你的行动走的是相同的参数作为什么花括号中。在这种情况下,参数将是

string postId
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top