问题描述
- 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
则报错,匹配不成功。
解决方案四:
ASP.NET MVC路由配置
ASP.NET MVC路由配置
Asp.Net MVC 路由
时间: 2024-09-20 07:41:13