【发布时间】:2013-10-17 09:45:23
【问题描述】:
我快疯了……这似乎是一个非常简单的任务。首先,我只知道 Web Api 和 MVC 的基础知识——所以请不要误导我。
在项目中,我需要在逻辑上创建控制器子文件夹(用于组织目的)。我有一种感觉,事情并没有我想象的那么简单。我有这样的默认路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这可以直接从我的项目中的控制器文件夹中正常工作。我在控制器文件夹控制器/报告中添加了一个子文件夹。我已经搜索了很多,只是找不到解决方案。如何添加将指向子文件夹的路线。 我试过了:
config.Routes.MapHttpRoute(
name: "ReportingApi",
routeTemplate: "api/Reports/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
和:
config.Routes.MapHttpRoute(
name: "ReportingApi",
routeTemplate: "api/Reports/{id}",
defaults: new { controller = "userunit" id = RouteParameter.Optional }
【问题讨论】:
-
路由实际上并不使用文件系统,它路由到控制器动作。
-
但是如果控制器在子文件夹中,您是否不必在某些时候提供路径?它不只是找到它吗?
-
按照惯例,框架在
Controller文件夹中查找控制器,但除此之外,它不查看路径。为什么需要为每个控制器创建一个子文件夹?如果你愿意,你可以摆弄路由以获得恰到好处的 URL,如果那是你所追求的。
标签: asp.net asp.net-mvc asp.net-web-api