我正在为我的主要类别页面执行 UrlRewrite。转换:
www.mysite.com/Category.aspx?id=2
到
www.mysite.com/Dogs
为此,我使用 Global.asax
'sApplication_BeginRequest
执行以下代码(伪代码):
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (IsCategoryUrl())
{
string CategoryName = ParseCategoryNameFromUrl(Request.Url);
string CategoryId = GetCategoryIdByNameFromDB( CategoryName );
Context.RewritePath("/Category.aspx?id=" + CategoryId);
}
}
我的问题是:
- 这是执行 URL 重写的正确方法吗?(这是我第一次这样做)。
- 此代码导致几乎每个请求都从数据库读取,有没有办法缓存它?我为 SQL 缓存找到的唯一技术需要一个
<%@ Page %>
指令,这在global.asax
. 还有其他解决方案吗?
提前致谢。