2 yfzhou888 yfzhou888 于 2016.04.19 19:20 提问

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
caozhy   Ds   Rxr 2016.04.19 19:48

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

yfzhou888
yfzhou888   2016.04.19 20:16

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

yfzhou888
yfzhou888   2016.04.19 20:21

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

CSDNXIAON
CSDNXIAON   2016.04.19 21:01

ASP.NET MVC路由配置
ASP.NET MVC路由配置
Asp.Net MVC 路由
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ASP.NET MVC5 新特性:Attribute路由使用详解
1、什么是Attribute路由?怎么样启用Attribute路由?   微软在 ASP.NET MVC5 中引入了一种新型路由:Attribute路由,顾名思义,Attribute路由是通过Attribute来定义路由。当然,MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由。   在以前的版本中我们通常在 RouteConfig.cs 文件中通过以下方式来定义
asp.net mvc 特性路由(MapMvcAttributeRoutes)的应用
asp.net mvc 特性路由可以直接给控制器下的每一个action指定一个地址,相对于在RouteConfig下面配置路由更灵活、方便。 使用方法也很简单,只要在RouteConfig注册路由的时候吧特性路由加上去就可以了。 就一句代码routes.MapMvcAttributeRoutes();控制器下的action直接标注就好了[Route(“data/Find”)]刚学习,
asp.net mvc获取路由参数
学习了mvc有一段时间了,本以为直接可以通过request对象直接获取路由参数呢,后来实验了一下发现想错了,在不同的地方,获取路由参数的方式也不一样,这里分班说一下,在controller,非controller的类里面,和view里如何获取路由参数: 1.在controller里获取路由参数: var controller = RouteData.Values["controller"];/
ASP.NET MVC3 学习心得------路由机制
9.1 理解URL URL满足的要求: l 域名易于记忆和拼写 l 简短、易输入 l 可以反应出站点的结构 l 可破解,用户可以通过移除URL的末尾,进而达到更高层次的信息体系结构 l 持久、不能变化 9.2路由机制的概述 ASP.NET MVC中路由机制的两种用途: l 匹配传入的请求,并映射到控制器的操作 l 构造传出的URL,用来相应控制器的操
史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~
asp .net MVC 路由配置
ASP.NET MVC5路由系统机制详细讲解
请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,js,图片等),这一步是web form和mvc都是一样的,如果不是则说明是请求的是一个动态页面,就会走asp.net的管道,mvc的程序请求都会走路由系统,会映射到一个Controller对应的Ac
Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则
一般我们在mvc开发过程中,都会碰到这样的问题。页面总是写在Views文件夹下,而且还只能一个Controller的页面只能写在相应的以Controller名命名的文件夹下。如果我们写到别处呢?那么肯定会报错。这是mvc中一个约定俗成的一个规定,必须这样写。 1.正常的项目目录,如下图:              我们要访问Index页面,只需要输入Home/Index就可以
史上最全的ASP.NET MVC路由配置
先说一下基本的路由规则原则。基本的路由规则是从特殊到一般排列,也就是最特殊(非主流)的规则在最前面,最一般(万金油)的规则排在最后。这是因为匹配路由规则也是照着这个顺序的。如果写反了,那么即便你路由规则写对了那照样坐等404. XD 首先说URL的构造。 其实这个也谈不上构造,只是语法特性吧。 URL构造 命名参数规范+匿名对象 1
ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL
在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量。   URL重写与优化就是搜索引擎优化的手段之一。   假如某手机网站(基于ASP.NET MVC)分类页面URL是这样的,   http://www.xxx.com/category/showcategory?categoryid=1000&view=list&orderb
ASP.NET MVC路由配置详解
先说一下基本的路由规则原则。基本的路由规则是从特殊到一般排列,也就是最特殊(非主流)的规则在最前面,最一般(万金油)的规则排在最后。这是因为匹配路由规则也是照着这个顺序的。如果写反了,那么即便你路由规则写对了那照样坐等404. XD 首先说URL的构造。 其实这个也谈不上构造,只是语法特性吧。 URL构造 命名参数规范+匿名对象 1