【问题标题】:How do i make a specific URL point to a specific file?如何使特定 URL 指向特定文件?
【发布时间】:2011-12-12 20:41:39
【问题描述】:

我想让我在输入时能够访问我的管理页面:

www.sitename.com/admin

这在 ASP.NET mvc3 中可行吗?

我决定采用该地区的方法。但是它似乎还没有工作。

我已经创建了一个管理区域并更新了管理区域注册中的路线。它看起来像这样:

            context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional },
            new string[] { "skylearn.Areas.Admin.Controllers" }
        );

但是,如果我转到我的 url localhost:1337/admin,我的 HomeController 服务的位于我的 HOME 文件夹中的索引文件似乎不会加载。这些文件夹和控制器也位于管理区域内。

任何想法为什么会发生这种情况?

【问题讨论】:

  • 您可以创建一个管理员“区域”,以便管理员的所有功能都包含在一个部分中。区域注册会将 /admin/{controller}/{action}/{id} 注册为该区域的默认路由。您在管理区域中的默认“Home”控制器将为 /admin/ 和 /admin/home 的请求提供服务,就像默认 Home 控制器将处理 / 和 /home 的请求一样
  • 是的,但是已经有这样不同的区域了。我希望管理页面能够自行定位
  • 您可以在 global.asax 中创建自定义路由,以便将 /admin/* 路径下不同 URL 的请求映射到不同的控件/操作(如果您必须这样做)。我强烈建议重构您的代码以创建一个区域(请参阅asp.net/mvc/videos/mvc-2/how-do-i/aspnet-mvc-2-areas)并将所有相关的管理功能放在管理区域内。这将在您的网站上创建功能的逻辑细分。
  • ive 实际上决定采用区域方法。但即使我像他在他的视频中那样创建了该区域,它似乎也不起作用
  • 请更具体一些。你必须告诉我们什么是行不通的。在您的 Area 文件夹中创建了一个 AreaRegistration 文件,例如:AdminAreaRegistration。它具有注册为您所在区域提供服务的路线的代码: context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new {controller = "Dashboard", action = "Index", id = UrlParameter.Optional} , 新字符串 [] { "MyWeb.Areas.Admin.Controllers" } );

标签: asp.net-mvc-3 url routes area


【解决方案1】:

当然,您可以通过仅为该 URL 注册一个新路由来做到这一点

        routes.MapRoute(
            "Admin", // Route name
            "Admin", // URL with parameters
            new { controller = "Admin", action = "SomeAction" } // Parameter defaults
        );

【讨论】:

  • 你把它添加到 global.asax 文件中
  • 如果应用程序中仍然存在默认路由,则该路由几乎没有影响。它唯一要做的就是更改管理部分的默认“操作”。如果要运行 /admin/test 之类的路径,则该路由将不匹配,而默认路由将匹配,因为“Admin”控制器存在并且它将查找名为“test”的操作。如果控制器 AronChan 希望将他的请求路由到不称为“管理员”的控制器,那么您的路由将起作用,但我强烈建议您在路由中包含 {action},以便您可以访问其他操作。
  • 如果你添加了 {controller} 是不是你必须为每个添加一个默认操作?
  • 错字,我有 {controller} 应该是 {action},我更新了它
  • 我同意添加 {action} 是个好主意。然而,在帖子中他提到了指向一个特定的文件,这让我觉得他只关心指向一个动作。
猜你喜欢
  • 1970-01-01
  • 2021-05-21
  • 2015-07-31
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
相关资源
最近更新 更多