ASP.NET MVC 路由值中包含句点(.)

1、有如下的路由配置:
routes.MapRoute(
name: null,
url: "{category}",
defaults: new
{
controller = "Home",
action = "List",
category = UrlParameter.Optional
});

    输入URL为"/asp",匹配成功,而输入"/asp.net",匹配失败。

2、修改路由匹配如下:
routes.MapRoute(
name: null,
url: "{category}/page{page}",
defaults: new
{
    controller = "Home",
    action = "List",
    category = UrlParameter.Optional
});

    输入URL为"asp.net/page1",却能匹配成功。


    请问url:{category}为什么匹配不到asp.net,而url:{category/page{page}}却能匹配到asp.net,什么原因???

因为你有一个默认路由写在前面匹配走了,结果你的路由被忽略,把你的路由写在最前面

这个路由是写在默认路由的前面!
估计是ASP.NET中的"."在作祟!

我想对产品进行分类,并希望用户通过如下URL进行分类导航:
/数据库
/程序设计
/JAVA
上述的路由值没有句点(.),则能实现正常的分类导航,但如果:
/ASP.NET
则报错,匹配不成功。

Web.config加上自定义路径访问权限