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

问题描述

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

url-ASP.NET MVC 路由值中包含句点(.)的相关文章

ASP.NET MVC 路由规则XML化

最近由于工作关系,重新回顾了ASP.NET MVC 的 1.0 版本.2.0版本还没有研究. 由于MVC框架发展不久,还有很多不足的地方.其中关于路由规则配置这一块问题比较大.首先路由规则是在全局配置问价 Global.asax 的 Application_Start()事件中注册的. 代码public static void RegisterRoutes(Route Collection routes) { routes.IgnoreRoute("{resource}.axd/{*pathIn

一起谈.NET技术,ASP.NET MVC 路由规则XML化

最近由于工作关系,重新回顾了ASP.NET MVC 的 1.0 版本.2.0版本还没有研究. 由于MVC框架发展不久,还有很多不足的地方.其中关于路由规则配置这一块问题比较大.首先路由规则是在全局配置问价 Global.asax 的 Application_Start()事件中注册的. 代码 public static void RegisterRoutes(RouteCollection routes){ routes.IgnoreRoute("{resource}.axd/{*pathInf

《ASP.NET MVC验证框架中关于属性标记的通用扩展方法》之继续扩展

首先需要对xVal有点熟悉: http://www.codeplex.com/xval 建议下载最新源码而不是编译版本 再看两篇文章: http://goneale.com/2009/03/04/using-metadatatype-attribute-with-aspnet-mvc-xval- validation-framework/ 深山老林将之翻译为:<ASP.NET MVC验证框架中关于属性标记的通用扩展方法> http://www.cnblogs.com/wlb/archive/2

ASP.NET MVC 3: Razor中的@:和语法

原文 ASP.NET MVC 3: Razor中的@:和语法 [原文发表地址] ASP.NET MVC 3: Razor's @: and <text> syntax[原文发表时间] December 15, 2010 11:48 PM 这是我正在写的博文系列中的另一篇,涵盖ASP.NET MVC 3的一些新功能: ·        Razor中的新@模型关键字(10月19日) ·        Razor中的层(10月22日) ·        用Razor实现服务器端注释(11月12日)

ASP.NET MVC应用程序中如何展示RDLC报表

学习ASP.NET MVC这样久,在学习,练习与应用过程中,觉得很多知识与以前的ASP.NET多有区别,但是实现操作起来,细处又有许多相近的地方. 本篇跟大家一起学习RDLC报表,是在ASP.NET MVC应用程序中实现.在实现过程中,Insus.NET也将把一些常见的问题列举与提供解决方法. 首先我们在数据库准备数据,表,存储过程等,数据应用以前练习的数据,写一个存储过程好了. 在ASP.NET MVC应用程序目录结构下的Entities下,找到以前写好的一个Entity,添加一个方法即可:

解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法_实用技巧

问题背景:            在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符串是它默认转为Date(84923838332223)的格式,在经过查资料发现使用前端来解决这个问题的方法不少,但是我又发现在使用jquery easyui时,加载列表数据又不能对数据进行拦截,进行数据格式转换之后再加载,后来发现可以通过自定义JsonResult实现,认为这种

ASP.NET MVC路由扩展:链接和URL的生成

ASP.NET 路由系统通过注册的路由表旨在实现两个"方向"的路有功能,即针对入栈请求的路由和出栈URL的生成.前者通过调用代表全局路由表的RouteCollection对象的GetRouteData方法实现,后者则依赖于RouteCollection的GetVirtualPathData方法,而最终还是落在继承自RouteBase的路由对象的同名方法的调用上.为了编程的方面,ASP.NET MVC为了设计了HtmlHelper和UrlHelper这两个帮助类,我们可以通过调用它们的A

ASP.NET MVC路由扩展:路由映射

上周我写了三篇文章(一.二.三)详细地介绍了ASP.NET的路由系统.ASP.NET的路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但是对于ASP.NET MVC应用来说,请求的目标不再是一个具体的物理文件,而是定义在某个Controller类型中的Action方法.出于自身路由特点的需要,ASP.NET对ASP.NET的路由系统进行了相应的扩展. 一.基本路由映射 通过前面的介绍我们知道基于某个物理文件的路由映射通过调用代表全局路由表的RouteTab

ASP.NET MVC应用程序中如何使用axd格式文件

axd格式文件,不管是在asp.net还是现在开发asp.net MVC应用程序,都是Insus.NET较喜欢使用的. 因为我们可以虚拟一个在应用程序不存在的一个文件.其实这个格式的文件也是Handler,它有实现了IHttpHandler接口.因此你完全可以创建一个axd来替换ashx文件. 下面Insus.NET在ASP.NET MVC应用程序,举个简单的例子,创建,配置与应用. 在Handlers目录下,创建一个cs类,暂叫它为Axd.cs.这个类名只符合C#类的命名规则即可. 这个类最主