请原谅我是否已经在某个地方问过这个问题,但我无法找出完成这项任务的最佳方法。我希望能够创建一个渲染系统,它允许我从数千个不同的 .aspx 页面中渲染出内容,而无需创建数千个 .aspx 页面。话虽如此,我仍然希望能够呈现出适当的 .aspx 页面(如果它存在于我的代码中)。
例如,当向站点发出请求时,我想检查该 URL 是否在数据库中,如果是,那么我想适当地呈现内容。但是,如果没有,那么我希望它继续呈现真实的 .aspx 页面。
在尝试使用 HTTPModule 时,我无法获取数据库中存在的页面来写出适当的内容。这是我的代码。
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
Uri url = application.Context.Request.Url;
//Checks to see if the page exists in the database
PageInformation page = PageMethods.GetPageFromUrl(url.AbsolutePath);
if (page != null)
{
string renderedPage = Renderer.RenderPage(page);
application.Context.Response.Write(renderedPage);
}
}
但是,当尝试使用 HTTPHandler 时,我无法正确呈现真正的 .aspx 页面,因为 *.aspx 动词正在由处理程序处理。
如果有人对如何完全重新设计它有任何更好的想法,我也完全愿意接受。谢谢。