【问题标题】:Matching route in ASP.NET MVC 3 returns a 404ASP.NET MVC 3 中的匹配路由返回 404
【发布时间】:2011-05-16 07:05:41
【问题描述】:

所以,突然间,当我尝试在我的 ASP.NET MVC 3 应用程序中访问新创建的控制器时,它会返回 404 错误。我已确保控制器命名正确,路由根据 RouteDebugger 匹配,并且我已确认控制器文件夹存在于 Views 文件夹中,并且该操作的正确命名视图也存在。所有这些都在一个区域中。哦,我在 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”的视图。据我所知,我不应该收到这个错误(这可能是程序员不应该说的话?)...

无论如何,如果有人指出我显然在搞砸什么,那就太棒了。提前致谢!

【问题讨论】:

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


    【解决方案1】:

    确保DocumentsController 定义在XXX.Areas.Administration.Controllers 命名空间中,其中XXX 是您的应用程序的名称。还要确保您请求的 url 与路由约束匹配:

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

    【讨论】:

    • 嗯,这很简单。感谢@Darin 的帮助!
    【解决方案2】:

    请在此处查看error 404 http://support.microsoft.com/kb/315122

    【讨论】:

    • 忘了说我在 Visual Studio 的开发服务器上运行,而不是在 IIS 上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 2011-08-03
    • 2011-10-25
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多