我一直在努力在VS 2010中使用一个新的ASP.NET MVC 4项目。我有一个非常基本的设置,只有一个控制器(SiteController
),一个路由({action}
)和一个单一视图(Views/Site/Default.cshtml
)。出于某种原因,我无法显示视图,即使路线根据RouteDebugger匹配,我得到的只是404错误。我以为是卡西尼是一个混蛋,所以我安装了IIS 7,但它仍然无法正常工作。这是相关的代码:
SiteController
/// Note: BaseController is in a different assembly I use to extend MVC and it works fine because I use it in a dozen other projects.
public class SiteController : BaseController {
public ActionResult Default() {
return base.View();
}
}
RouteConfig
public class RouteConfig {
public static void RegisterRoutes(
/// http(s)://{host}/{action}
routes.MapRoute("6354af93-f979-44a4-ba9b-cc8ab775edf6", "{action}", new {
action = "Default",
controller = "Site"
});
/// http(s)://{host}/{*any}
routes.MapRoute("04b41915-4455-4c11-96c2-38e6aedf929f", "{*any}", new {
action = "Default",
controller = "Site"
});
}
}
这是项目的文件夹结构:
App_Start
BundlesConfig.cs
FilterConfig.cs
NinjectWebCommon.cs
RouteConfig.cs
Controllers
SiteController.cs
Models
Views
Shared
_Site.cshtml
Site
Default.cshtml
Web.config
Global.asax
packages.config
Web.Config
结果我的BaseController
类导致404错误。不知道为什么,还要检查那个项目,但是现在我已经恢复了SiteController
继承Controller
作为默认值。
UPDATE
我花了最后几个小时重建了一个.NET扩展解决方案,其中包含我上面引用的BaseController
。我重新定位它使用v4程序集,并能够重新插入。所以,我想我使用引用v3程序集的扩展程序是错误的。
如果你的想法用完了,我建议你调试这个问题的步骤......