有谁知道是否有可能在MVC中区分大小写路由。MVC4中的区分大小写路由
我想要如下指出不同的文章。
例如
http://my.ie/uRl - >商务部1
http://my.ie/Url - >商务部2
很想听到的话,可以做到这一点。
有谁知道是否有可能在MVC中区分大小写路由。MVC4中的区分大小写路由
我想要如下指出不同的文章。
例如
http://my.ie/uRl - >商务部1
http://my.ie/Url - >商务部2
很想听到的话,可以做到这一点。
你可以使用路由器约束和正则表达式这样的:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
new { id = @"\d+", [email protected]"[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(...);
}
}
所以现在,而不是试图用路由者区分情况下,你可以询问传入的参数和服务于它,你认为合适。
我从来没有见过url区分大小写 –
@Murali:真的吗?因为IIS不区分大小写,但基于nix的服务器已经很长时间了(主要与文件系统区分大小写 - “foo.txt”与“FOO.txt”不同)。 –