Я создаю интернет-магазин, который широко использует кодировку URL.
В моей базе данных есть список отделов и категорий, который я использую для создания ссылок. Они, конечно, закодированы в URL перед отправкой.
Некоторые типичные ссылки:
/MySite/Store/Countertop+Equipment/Can+Openers.aspx
/MySite/Store/Dinnerware.aspx /MySite/Store/Kitchen/Pastry%2f+Decorating.aspx
В моем HTTPHandler я вызываю app.Request.Path, чтобы получить текущий путь. Строка, возвращаемая этим вызовом, больше не кодируется URL-адресом, что не позволяет мне правильно анализировать. После потери кодировки URL-адреса
/MySite/Store/Kitchen/Pastry%2f+Decorating.aspx становится
/ MySite / Store / Kitchen / Pastry / Decorating. aspx.
Это явно нарушает метод преобразования URL-адреса в QueryString.
Кто-нибудь знает, как это исправить?
Вот ядро моего HTTPHandler
public void Init(System.Web.HttpApplication app)
{
app.BeginRequest += new EventHandler(Application_BeginRequest);
}
private void Application_BeginRequest(object sender, EventArgs e)
{
System.Web.HttpApplication app = (System.Web.HttpApplication)sender;
string realUrl = GetRealUrl(app.Request.Path);
if (!String.IsNullOrEmpty(realUrl))
app.Context.RewritePath(realUrl, false);
}
Я очень ценю вашу помощь!