在查看MVC页面并查看表单操作时,我可以看到它设置为:
/管理/ WikiAdmin /编辑/
所以我花了一些时间寻找一个名为 admin 的控制器。我查看了全球的路线,没有任何东西存在。
最终我发现这个网址实际上映射到了 WikiAdmin 控制器,令人困惑。这是否意味着您可以在子文件夹中拥有控制器?应用程序如何知道不将请求转发给管理员控制器并实际将其发送到 WikiAdmin 控制器?
答案 0 :(得分:1)
网址的admin
部分称为area
。您可以在this article中阅读有关区域的更多信息。还有一个video here。基本上,区域允许您将多个控制器分组,共享站点上的一些常用功能。
答案 1 :(得分:1)
是的,您可以在子文件夹中安装控制器。使用路由可能会有很多可能的URL。 例如,如果您的路线注册如下:
routes.MapRoute(
"admin1",
"admin/{controller}/{action}/",
new { controller = "WikiAdmin", action = "Index"}
);
网址可以是 / admin / WikiAdmin / Index / 或 / admin / WikiAdmin / Edit / 或与路线匹配的其他内容。 (假设在WikiAdmin控制器中有一个Edit动作)
更多示例,如果您的路线注册如下:
routes.MapRoute(
"admin2",
"account/{action}/", //no controller specified in url
new { controller = "WikiAdmin", action = "Index"}
);
然后网址可以是 / account / Index / 或 / account / Edit / ,甚至是 / account / 。 (因为默认控制器是WikiAdmin,默认操作是索引)