Как использовать Server.UrlEncode с модулем шаблонов усов? - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь кодировать SKU продукта в нашем модуле фильтра продукта. Проблема, с которой я сталкиваюсь, заключается в том, что в подробном представлении продукта используется следующий код для получения информации о соответствующем продукте. Проблема возникает, когда SKU имеет косую черту. Например, BD1115 / 35 код ниже обнаруживает только первую часть.

var prodCode = Request.QueryString["sku"];
var decodeprodCode = HttpUtility.UrlDecode(prodCode);

Было предложено кодировать URL. Сейчас я пытаюсь сделать это с усами, которые являются движком шаблонов. Посмотрите на {{StockCode}} после SKU. Это не работает.

 <a href='<%=DetailedPageRedirectLink%>/sku/<%=HttpUtility.UrlEncode("{{StockCode}}")%>' rel="canonical"><img class='responsive productimage' src='{{ProductImage}}' alt='{{StockDescription}}' /></a>

Я посмотрел на этот вопрос: Используя Request.QueryString, косая черта (/) добавляется к последней строке запроса, когда она существует в первой строке запроса

Обновление Я создал новый объект в бэкэнде, который называется QueryStringSKU , и я кодирую его, прежде чем он будет заменен на Усы. Таким образом, SKU BDF5555 / 45 будет отображаться как HF: BDF5555% 2F45.

enter image description here

Проблема теперь возникает, когда я пытаюсь декодировать URL. Строка запроса теперь показывает BDF5555 & 45.

Каким-то образом DotNetNuke меняет это или переписывает это, и теперь он все еще игнорирует значение 45, которое является частью единицы хранения запасов (SKU)

enter image description here

1 Ответ

0 голосов
/ 20 сентября 2018

Я использовал этот код:

string RawurlFromRequest = Request.RawUrl;
var cleanSKU = RawurlFromRequest.Split(new[] { "sku/" }, StringSplitOptions.None)[1];
var decodeprodCode = cleanSKU.Split(new[] { "&" }, StringSplitOptions.None)[0];
...