【问题标题】:MVC3 404 for any URL containing "PRN"包含“PRN”的任何 URL 的 MVC3 404
【发布时间】:2011-07-06 13:29:00
【问题描述】:

我遇到了一个奇怪的问题,任何包含“PRN”的 URL 都会返回 404。

如果我有两种方法:

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

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

我可以通过导航到以下位置调用测试: 控制器/测试

它总是会返回“你好”。但是,如果我尝试调用: 控制器/测试/PRN,我得到一个 404

如果我尝试调用 Controller/PRN/Anything,我会收到 404

在多个 MVC3 应用程序中,我发现任何包含“PRN”的 URL 都会返回 404 错误。有人有什么想法吗?

编辑: 这是我的路线配置:

    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 } 
        );

    }

谢谢。

【问题讨论】:

  • 向我们展示您的路线配置
  • 可能值得发布您的 RegisterRoutes 内容,因为这是最有可能出现问题的候选者。

标签: asp.net-mvc-3 iis iis-7.5


【解决方案1】:
【解决方案2】:

如果调用Controller/Test/PRN' It wont point to anything because you are calling theTest`ActionMethod 并传递PRN 作为参数。

尝试添加...

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

... 到 Global.asax.cs 文件夹中 RegisterRoutes 方法的顶部。

【讨论】:

  • 我明白这一点,但“PRN”作为参数应该可以正常工作。如果我调用 Controller/Test/SomethingThatIsntPRN,它会按我的预期返回“hello”。
猜你喜欢
  • 1970-01-01
  • 2012-04-25
  • 2014-10-25
  • 1970-01-01
  • 2018-06-28
  • 2018-10-07
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多