我在许多串读“/” ES这通过他们有/
“ES打交道,最常见的例子是日期/号码,如05/06,07/08等与链接
我正在使用ASP.NET MVC2并从这些字符串生成链接读出数据库,这是问题所在。
显然一个链接:
www.mysite.com/yearperiod/05/06/detail
将无法工作相同为纽带,以
www.mysite.com/yearperiod/2005/detail
什么是一个很好的解决这个问题?我的第一个想法是将每个/
转换为-
,但随后我遇到了必须跟踪哪些已转换的问题/开销,以便在写回DB时,我不会无意中将有效的-
切换为
编辑/
(如果是有道理的):来想起来,我不知道如何跟踪每个转换/
...... hmmmm .....
EDIT1:鉴于此字符串:“2001/2 - 水果”
var encodedLinkText = HttpContext.Current.Server.UrlEncode(linkText); //result is "2001%2f2+-+Fruit"
但当时如果我把从我的观点,即linkhelper渲染链接出来的: 查看源: <li><a href="2001%2f2+-+Fruit">2001/2 - Fruit</a></li>
呈现链接: http://localhost:XXXX/Period/2001/2+-+Fruit
,而我需要它作为:
http://localhost:XXXX/Period/2001%2f2+-+Fruit
edit2:浏览器(使用chrome进行测试)会自动将%2f
转换为/
。现在怎么办?
EDIT3:嗯哦......看起来像IE浏览器的行为正确(如需要)...嗯...
- IE正确(编码),并显示后点击链接它仍然编码。
- Firefox显示链接解码后,点击编码后。
- Chrome显示链接解码后,点击解码后。
有趣暗示的方式,使与它的交易,简单地从链路去除斜线完全'http://stackoverflow.com/questions/3648634/处理与ES中的链接' – baron 2010-09-06 02:03:14
它不应该是一个问题。如果您使用的是Firefox,您将在源代码中看到的是转换后的代码,以及当您将它悬停在斜杠上时在状态栏中看到的内容,但是当您单击它时,它会为您提供编码的字符串。 – 2010-09-06 04:08:33
如果有机会,你可以在这里发布你的扩展方法吗? – 2010-09-06 04:09:18