asp.net-mvc-2 - ASP.NET MVC 2 通配符路由在处理空格时遇到问题

标签 asp.net-mvc-2 url-routing

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

        routes.MapRoute(
            null,
            "{controller}/{action}/{*category}",
            new { controller = "Mall", action = "Index", category = UrlParameter.Optional }
        );

这一直工作正常,直到类别在斜杠“/”之前或之后有任何空格为止。

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

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

任何帮助将不胜感激!

最佳答案

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

如果 URL 任何部分末尾的下一个斜杠之前有空格,则会抛出 HttpExceptionSystem.Web.Util.FileUtil.CheckSuspiciousPhysicalPath()方法由 MVC 处理,您将收到 HTTP 404 响应。

您可以通过选中 Throw 复选框自行验证这一点在:

  1. Visual Studio
  2. Debug
  3. Exceptions
  4. Common Language Runtime Exceptions

一般来说,您的网址中不应有空格。我个人格式化我的网址,所有空格都变成破折号 (-)。

关于asp.net-mvc-2 - ASP.NET MVC 2 通配符路由在处理空格时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3926525/

相关文章:

windows - 通过 BPOS 从 Windows Azure 发送电子邮件

asp.net-mvc - RouteValueDictonary routeValues 在 Html.BeginForm() 中有什么用

jquery - 适合 div 的动态文本

c# - 网址没有命中任何 Action

WordPress : URL error 404 but the page exists

php - 处理 URL 参数 - 以斜杠分隔的名称值对

javascript - 在 ember 中维护多个状态

asp.net-mvc-2 - Asp.net MVC2 IModelBinder 试图让我发疯(并且成功了)

asp.net-mvc-2 - 如何通过代码隐藏获取在 mvc 2 中运行的完整服务器名和端口

javascript - NODE.JS - 使用 URL.parse 传递路径名