これがすでにどこかで尋ねられている場合は許してください、しかし私はこのタスクを達成するための最良の方法を見つけることができません。何千もの.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ページを適切にレンダリングできません。
これを完全に再設計する方法について誰かがより良いアイデアを持っているなら、私もそれを完全に受け入れています。ありがとう。