MVC4 中的区分大小写的路由

本文关键字:大小写 路由 MVC4 | 更新日期: 2023-09-27 18:36:47

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

我想指出以下不同的文章。

http://my.ie/uRl -->文档 1

http://my.ie/Url -->文档 2

很想听听是否可以做到这一点。

MVC4 中的区分大小写的路由

您可以使用路由器约束和正则表达式,如下所示:

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

因此,只需考虑要根据正则表达式应用的约束

鉴于MVC是一个IIS平台(Windows本身是不敏感的),我不知道你是否会有太多的运气。但是,如果您使用它来提供文件,则可以创建一个回退路由,然后将其更进一步(并适当地解析它)。例如

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,而是可以询问传入参数并根据需要提供它。