yfzhou888
松果工作室
采纳率0%
2016-04-19 11:20 浏览 1.6k

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,什么原因???
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-19 11:48

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

    点赞 1 评论 复制链接分享
  • yfzhou888 松果工作室 2016-04-19 12:16

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

    点赞 评论 复制链接分享
  • yfzhou888 松果工作室 2016-04-19 12:21

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

    点赞 评论 复制链接分享
  • TalentLi TimLee✿ 2019-10-08 11:01

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




    点赞 评论 复制链接分享

相关推荐