На моей странице asp.net mvc я создаю ссылку, которая выглядит следующим образом:
http://localhost:3035/Formula/OverView?colorId=349405&paintCode=744&name=BRILLANT%20SILVER&formulaId=570230
В соответствии с валидатором W3C, это неверно и выдает ошибки после первого амперсанда. Он жалуется на то, что & не кодируется, а объект & p не распознается и т. Д.
AFAIK код & не должен кодироваться, поскольку он является разделителем для пары ключ-значение.
Для тех, кому не все равно: я отправляю эти параметры в виде строки запроса, а не в виде разделенных "/" значений, потому что не существует достойного способа передачи необязательных параметров, которые мне известны.
Чтобы сложить все биты:
- для атрибута href тега привязки () требуется закодированное значение
- & кодирует в & amp;
- для кодирования '&', когда оно является частью значения вашего параметра, используйте% 26
Не кодирует ли амперсанд и не делает ли это частью значения моего параметра?
Мне нужно, чтобы отделить вторую переменную от первой
Действительно, кодируя значение href, я избавляюсь от ошибок. Однако сейчас мне интересно, что делать, если, например, мой colorId будет «123 & 456», где амперсанд является частью значения.
Поскольку разделитель должен быть закодирован, что делать с закодированными амперсандами. Нужно ли их, так сказать, кодировать дважды?
Итак, чтобы получить URL:
www.mySite.com/search?query=123&456&page=1
Каким должно быть мое значение href?
Кроме того, я думаю, что я первый человек в мире, который позаботится об этом ... иди проверь www и посчитай страницы, которые проверяют строку запроса в валидаторе W3C.