控制器ASP.NET MVC中的子文件夹
在我的Controllers文件夹中,我想要一个名为Admin的子文件夹。
当我去http:// localhost:port / Admin / Login /它说无法找到页面。
RouteConfig.cs
using System.Web.Mvc; using System.Web.Routing; namespace ICT4Events { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } }
您可以使用下一个路线来处理您的问题:
routes.MapRoute( name: "AdminSubForder", url: "admin/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
当用户键入http://localhost:port/Admin/
时,请勿忘记将controller = "Home"
默认值更改为要重定向的控制器。
因此,当您转到http://localhost:port/Admin/Login/
您将在Admin文件夹中使用Login
controller和Index
操作。
重要事项同样将此路由放在默认路由之前,因为如果将此代码放在“默认”路由之后,ASP.NET将使用Admin
控制器和Login
操作读取您的http://localhost:port/Admin/Login/
like URL。
您的新路线“SubFolder”不包括在路线中包含操作的可能性(在您的情况下,“管理员”)。
你的url想要匹配路由
"SubFolder/ChildController/{action}"
如果您的路线中不包含“{action}”,则与您的路线不符。 然后它尝试默认路由,显然失败了。
尝试在路线中添加“{action}”,如下例所示
routes.MapRoute( "SubFolder", // Route name "SubFolder/ChildController/{action}", new { controller = "ChildController", action = "Index" }, new[] { "Homa.Areas.Kiosk.Controllers.SubFolder" });
- 创建动态变量名称
- EditorFor / CheckBoxFor boolean将data-val-required属性添加到HTML,而不将必需属性添加到模型中
- asp.net标识中的用户名validation消息问题
- 在单个解决方案中混合使用VB ASP.NET和C#ASP.MVC项目
- 为什么我在DropDownList中获得“System.Web.Mvc.SelectListItem”?
- 在启用了LowercaseUrls的Route参数中保留Case
- entity framework7逆向工程ASP.NET 5
- 使用用户证书以Web表单签名数据的最佳方式
- MVC5 Ninject绑定和HttpContext