В итоге я использовал следующий код вместо Request.Querystring.
string RawurlFromRequest = Request.RawUrl;
var cleanSKU = RawurlFromRequest.Split(new[] {"sku/"}, StringSplitOptions.None)[1];
var CleanSKUNoOtherQueryStrings = cleanSKU.Split(new[] {"&"}, StringSplitOptions.None)[0];
Request.RawURL возвращает URL со специальными символами, как это без кодировки. Как уже упоминалось выше, Митчел Селлерс, DNN использует FriendlyURLProvider, который переписывает URL.
Например www.mysite.com / ProductFilter / SKU / BDF5555 / 45 и не
www.mysite.com/ProductFilter/SKU/BDF5555%2F45
Переменная CleanSKU будет искать SKU / и разбивать все слева, поскольку она установлена на [1].
После того, как все было разделено слева, мы ищем другие строки QueryStrings, которые мы обычно добавляем со знаком &. Мы разделим все справа, установив [0].
Это вернет BDF5555 / 45 в бэкэнд с косой чертой, которую мы можем использовать для получения информации о продукте из нашей системы ERP, чего не мог сделать URLdecode.