Asp.net mvc RouteConfig.cs不';子文件夹无法按预期工作
我创建了一个管理子文件夹,其中包含所有与管理相关的控制器。与此类似: 这是我在'RouteConfig.cs'中的代码 我在Asp.net mvc RouteConfig.cs不';子文件夹无法按预期工作,asp.net-mvc,Asp.net Mvc,我创建了一个管理子文件夹,其中包含所有与管理相关的控制器。与此类似: 这是我在'RouteConfig.cs'中的代码 我在Admin文件夹下有一个ManageUserController,而Admin在Controllers文件夹下 我有一个PublicContollers直接位于控制器下 以下是我的问题: 我所有的Html.ActionLink或Return View()和任何其他类似的修改都被搞糊涂了。例如,Html.ActionLink(“Public”、“Index”、“Public”
Admin
文件夹下有一个ManageUserController
,而Admin
在Controllers
文件夹下
我有一个PublicContollers
直接位于控制器下
以下是我的问题:
Html.ActionLink
或Return View()
和任何其他类似的修改都被搞糊涂了。例如,Html.ActionLink(“Public”、“Index”、“Public”)
将把我带到www.something.com/admin/Public/Index
而不仅仅是www.something.com/Public/Index
admin
关键字在路由中似乎没有任何用处。例如,www.something.com/admin/manageUser/index
和www.something.com/manageUser/index
都会将我带到同一个地方Html.ActionLink(“Public”、“Index”、“Public”)
,它应该把我带到www.something.com/Public/Index
,同样,如果我有Html.ActionLink(“Manage Users”、“Index”、“ManageUser”)
,它应该把我带到www.something.com/admin/ManageUser/Index
www.something.com/ManageUser/Index
,它会抛出页面未找到错误我缺少什么?MVC不正式支持子文件夹。链接问题的答案显示了如何模拟一个子文件夹。如果要创建嵌套子文件夹,则需要为每个子文件夹创建一个新路由,并且每个级别只能支持一个控制器 如果您真的希望MVC应用程序的行为像它有子文件夹一样,我建议使用,它根据控制器所在的名称空间动态配置MVC路由(如果使用Visual Studio,它将与子文件夹具有相同的层次结构),并且将支持每个文件夹中的多个控制器
routes.MapRoute(
name: "Admin",
url: "admin/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
);