我正在尝试为搜索页面创建语义URL,但如果有人使用点完成的搜索,则.net引擎返回404.
请求甚至没有到达路由引擎,所以我认为它与安全性或类似的东西有关.
例如,stackoverflow路由在这些情况下也不起作用: /sf/ask/tagged/etc/.
尝试使用名为PropertiesController的控制器(以及随后的路由)时,我遇到了一个棘手的问题(因为我是MVC的新手).
我相信这是因为我的解决方案中有一个名为"Properties"的目录(我无法删除).这有什么方法吗?
路线设置只是一条简单的路线:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Properties", action = "List", id = "" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
并且在请求" http:// localhost/aptment2/properties / " 时我在IIS7中得到的错误是:

当然有一种方法可以找到我找不到的方法吗?干杯.
我遇到了一个奇怪的问题,任何包含"PRN"的URL都会返回404.
如果我有两种方法:
public string Test(string x)
{
return "hello";
}
public string PRN(string x)
{
return "worked";
}
Run Code Online (Sandbox Code Playgroud)
我可以通过导航到:控制器/测试来调用测试
它将永远返回"你好".但是,如果我尝试调用:Controller/Test/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 }
);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.