Asp.net mvc 2 ASP.NET MVC 2通配符路由无法处理空格

Asp.net mvc 2 ASP.NET MVC 2通配符路由无法处理空格,asp.net-mvc-2,url-routing,Asp.net Mvc 2,Url Routing,我有一个通配符路由映射如下: routes.MapRoute( null, "{controller}/{action}/{*category}", new { controller = "Mall", action = "Index", category = UrlParameter.Optional } ); 直到类别在斜杠“/”之前或之后有任何空格为止,这一直都很正常 对于类别艺术/音

我有一个通配符路由映射如下:

        routes.MapRoute(
            null,
            "{controller}/{action}/{*category}",
            new { controller = "Mall", action = "Index", category = UrlParameter.Optional }
        );
直到类别在斜杠“/”之前或之后有任何空格为止,这一直都很正常

对于类别艺术/音乐,它会发现页面很好

对于艺术/音乐类,它将给我一个404未找到


任何帮助都将不胜感激

我刚刚回答了类似的问题。完整性:

如果在下一个斜杠之前的URL的任何部分的末尾有一个空格,它会在由MVC处理的
System.Web.Util.FileUtil.checkSuspestiousPhysicalPath()
方法中抛出一个
HttpException
,您将得到HTTP 404响应

您可以通过选中
Throw
的复选框来验证自己:

  • Visual Studio
  • Debug
  • 例外情况
  • 公共语言运行时异常

  • 通常,URL中不应该有空格。我个人格式化了我的URL,所有的空格都变成了破折号(-)。

    有点让人扫兴,因为我不想回去重做整个项目,因为这些都是用户输入的创建URL的项目。我想这是有道理的,以后我会记住的。谢谢你,马丁!ps-抱歉接受的太慢。