Я читаю в ряде строк, которые имеют /
«эс через них, наиболее распространенный пример является дата/номер, как 05/06, 07/08 и т.д.Работы с «/» эс в связи
Я использую ASP.NET MVC2 и генерирую ссылки с этих строк, считываемых из БД, что в этом и есть проблема.
Очевидно, что ссылка:
www.mysite.com/yearperiod/05/06/detail
не будет работать так же, как ссылка на
www.mysite.com/yearperiod/2005/detail
Что является хорошим решением этой проблемы? Моя первая мысль состоит в том, чтобы преобразовать все /
в -
, но затем я столкнулся с проблемой/накладными расходами на необходимость отслеживать, какие из них были конвертированы, так что, когда вы возвращаетесь в БД, я не могу случайно включить действительный -
в /
(если это имеет смысл)
редактировать: задумайтесь об этом, я не знаю, как следить за каждый преобразованный /
... хммм .....
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: Браузер (тестирование в хроме) автоматически преобразует %2f
в /
. Что теперь?
Edit3: Ой-ой ... выглядит как IE ведет себя должным образом (как это требуется) ... хммм ...
- IE отображает ссылку правильно (кодируются), и после нажатия остается закодирован.
- Firefox показывает, что ссылка декодирована и после нажатия закодирована.
- Хром отображает ссылку, декодированную и после нажатия которой декодируется.
интересный намек на путь так сделок с ним, просто извлекая слэш по ссылке полностью 'http://stackoverflow.com/questions/3648634/ – baron
это не должно быть проблемой. Если вы используете firefox, то, что вы увидите в исходном коде, является преобразованным и тем, что вы видите в строке состояния, когда вы наводите его на косую черту, но когда вы нажимаете на него, он выдаст вам закодированную строку. –
если есть шанс, не могли бы вы разместить свой метод расширения здесь? –