ASP.NET MVC 3中的匹配路由返回404

时间:2011-05-16 07:05:42

标签: c# asp.net-mvc asp.net-mvc-3 routes

因此,当我尝试访问ASP.NET MVC 3应用程序中新创建的控制器时,突然发生404错误。我确保控制器命名正确,路由匹配根据RouteDebugger,我已经确认控制器的文件夹存在于Views文件夹中,并且该操作的正确名称View也存在。所有这些都在一个区域内。哦,我在Visual Studio开发服务器上运行它,而不是在IIS上运行。

所以,我已经在这里待了大约2个小时而且没有到达任何地方,所以我希望有人能指出我正确的方向。这是控制器和路线的来源:

//  AdministrationAreaRegistration.cs
public override void RegisterArea(
    AreaRegistrationContext AreaRegistrationContext) {
    AreaRegistrationContext.MapRoute("8UVhDc", "Administration/{controller}/{DocumentTypeId}", new {
        action = "List"
    }, new {
        controller = @"Documents",
        DocumentTypeId = @"\d+"
    });
}

//  DocumentsController.cs
public sealed class DocumentsController : AdminController {
    [Inject]
    public DocumentsController(
        CookieManager CookieManager,
        DocumentTypeManager DocumentTypeManager)
        : base(CookieManager: CookieManager, DocumentTypeManager: DocumentTypeManager) {
    }

    [HttpGet]
    public ActionResult List(
        short DocumentTypeId) {
        return this.View(new AdministrationView {
            Cookie = base.Cookie,
            DocumentTypes = base.DocumentTypes
        });
    }
}

当然,“Views”文件夹中有一个名为“Documents”的文件夹,而“Documents”文件夹中有一个名为“List”的视图。据我所知,我不应该得到这个错误(这可能是程序员不应该说的?)......

无论如何,如果有人指出我明显搞砸了,那真是太棒了。提前谢谢!

2 个答案:

答案 0 :(得分:0)

请参阅error 404此处http://support.microsoft.com/kb/315122

答案 1 :(得分:0)

确保在DocumentsController命名空间中定义了XXX.Areas.Administration.Controllers,其中XXX是您的应用程序的名称。还要确保您请求的网址符合路径限制:

http://localhost:35076/Administration/Documents/123