MVC3 404 для любого URL, содержащего «PRN» - PullRequest
1 голос
/ 06 июля 2011

Я столкнулся со странной проблемой, когда любой URL, содержащий «PRN», будет возвращать 404.

Если у меня есть 2 метода:

    public string Test(string x)
    {
        return "hello";
    }

    public string PRN(string x)
    {
        return "worked";
    }

Я могу вызвать тест, перейдя к: Контроллер / Test

Всегда будет возвращаться "привет". Однако, если я попытаюсь позвонить: Контроллер / Тест / PRN, я получаю 404

Если я попытаюсь позвонить в Controller / PRN / Anything, я получу 404

В нескольких приложениях MVC3 я обнаружил, что любой URL, содержащий «PRN», вернет ошибку 404. У кого-нибудь есть идеи?

EDIT: Это моя конфигурация маршрута:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );

    }

Спасибо.

Ответы [ 2 ]

5 голосов
/ 06 июля 2011
0 голосов
/ 06 июля 2011

Если вы вызываете Controller/Test/PRN' It wont point to anything because you are calling the Test` ActionMethod и передаёте PRN в качестве параметра.

Попробуйте добавить ...

routes.MapRoute(
            "PRN", // Route name
            "Controller/PRN/{x}", // URL with parameters
            new { x = UrlParameter.Optional } // Parameter defaults
        );

... в начало вашего RegisterRoutes метода в папке Global.asax.cs.

...