MVC4中的区分大小写路由

时间:2013-10-24 12:21:56

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

有没有人知道在MVC中是否可以使用区分大小写的路由。

我想按照以下方式指出不同的文章。

例如

http://my.ie/uRl - > doc 1

http://my.ie/Url - > doc 2

很想知道是否可以这样做。

2 个答案:

答案 0 :(得分:0)

您可以使用路由器约束和类似的正则表达式:

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        new { id = @"\d+", action=@"[A-Z]+"  }  //Parameter constraints
        );

因此,只需考虑要在正则表达式方面应用的约束

答案 1 :(得分:0)

鉴于MVC是一个IIS平台(并且Windows本身不敏感),我不知道你是否会有太多运气。但是,如果您使用它来提供文件,您可以创建一个后备路由,然后再向前迈一步(并适当地解析它)。 e.g。

routes.MapRoute(
  "File_Fetch",
  "{filename}",
  new { controller = "File", action = "Fetch", filename = UrlParameter.Optional },
  new { filename = @"^.+$" }
);

public class FileController : Controller
{
    public ActionResult Fetch(String filename)
    {
        // /Url -> filename = "Url"
        // /uRl -> filename = "uRl"
        return File(...);
    }
}

所以现在不是试图使用路由来区分cASe,而是可以查询传入的参数并按照您认为合适的方式提供它。

相关问题