Соответствующий маршрут в ASP.NET MVC 3 возвращает 404 - PullRequest
1 голос
/ 16 мая 2011

Итак, внезапно, когда я пытаюсь получить доступ к вновь созданному контроллеру в моем приложении 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 голосов
/ 16 мая 2011

Убедитесь, что DocumentsController определено в пространстве имен XXX.Areas.Administration.Controllers, где XXX - это имя вашего приложения. Также убедитесь, что запрашиваемый вами URL соответствует ограничениям маршрута:

http://localhost:35076/Administration/Documents/123
0 голосов
/ 16 мая 2011

см. error 404 здесь http://support.microsoft.com/kb/315122

...