我正在构建一个广泛使用 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);
}
我真的很感谢你的帮助!