asp.net-mvc – 如何使ASP.NET路由转义路由值?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何使ASP.NET路由转义路由值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ASP.NET MVC站点,我想要/ {controller} / {id} / {action} / {date}等路由,其中​​“date”是日期/时间的mm / dd / yyyy部分. (我正在处理时间尺寸的数据,因此我需要一个ID和一个时间点来完成大多数操作)

这个的路线很简单:

routes.MapRoute(
    "TimeDimensionedRoute","{controller}/{id}/{action}/{date}",new { controller = "Iteration",action = "Index",id = String.Empty,date = String.Empty }
);

此路线正确地将“/ Foo / 100 / Edit / 01/21/2010”映射到所需的操作.更新:这是不正确的.这没有正确路由,我错了.请参阅已接受答案中链接的相关问题.

我的问题是,当我使用Html.ActionLink()生成此路由的链接时,它不会对日期进行URL编码,最终会出现无效的URL,例如“/ Foo / 100 / Edit / 01/21/2010 ”.

有没有办法让路由基础设施为我编码值?我必须手动对我传递给HTML帮助程序的数据进行URL编码似乎是错误的.

解决方法

您不能在ASP.NET MVC中的路由值中使用正斜杠.即使它是URL编码它也不会工作.

slash in url

如果使用ASP.NET 4.0,则只有一个解决方

猜你在找的asp.Net相关文章