有没有人知道在MVC中是否可以使用区分大小写的路由。
我想按照以下方式指出不同的文章。
例如
http://my.ie/uRl - > doc 1
http://my.ie/Url - > doc 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,而是可以查询传入的参数并按照您认为合适的方式提供它。