我创建了一个新的MVC4项目,因为我在我正在处理的内容中弄乱了太多默认的模板化内容。我将身份验证设置为“无”,并复制了很多组件,例如控制器,基类,视图模型,验证器(流利验证)等。我保留了原来的Home
控制器和视图。
原始Home
页面通过其Index
操作完成了所有工作。我的所有“导入”控制器都来自ComairRIController
,而Home
却没有,但我甚至尝试从我的一个控制器中删除此继承,只是继承自Controller
,就像{Home
一样。 1}},没有效果;我仍然得到404.
项目构建时没有任何错误或警告,并且可以正常打开Home / Index视图。这可能有什么问题?我怎么诊断这个?我的ComairRIController
的构造函数甚至没有被调用,因此请求根本没有得到很远。
我正在使用默认路由配置:
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 }
);
}
重要信息:源项目(纯MVC4)和目标项目(Orchard模块)具有完全相同的名称和默认名称空间。我故意这样做是为了避免尽可能多的命名空间不匹配。
新信息:我已经通过NuGet添加了Elmah 2.0.2,并将其设置为记录到XML文件。它为每个404记录一个错误,错误是(为了简洁我省略了堆栈跟踪):
<error errorId="db2b4236-b913-4b98-878e-f3e02fdff321"
application="/"
host="7F3KH5J"
type="System.Web.HttpException" \
message="The controller for path '/ApplicantProfile/Start' was not found or does not implement IController."
source="System.Web.Mvc"
detail="System.Web.HttpException (0x80004005): The controller for path '/ApplicantProfile/Start' was not found or does not implement IController.

有趣的是,对Elmah.axd的请求也会返回404。
答案 0 :(得分:0)
您提到您复制了现有项目中的一些组件,但没有提及您是否复制了除了Home / Index操作之外的任何内容。
对于任何其他控制器,是否没有匹配的视图?