Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中数据库的动态页面#_C#_Httpmodule - Fatal编程技术网

C# C语言中数据库的动态页面#

C# C语言中数据库的动态页面#,c#,httpmodule,C#,Httpmodule,如果有人问我这个问题,请原谅,但我想不出完成这项任务的最佳方法。我希望能够创建一个渲染系统,使我能够从数千个不同的.aspx页面渲染出内容,而无需创建数千个.aspx页面。尽管如此,如果代码中存在相应的.aspx页面,我仍然希望能够呈现它 例如,当向站点发出请求时,我想检查并查看该URL是否在数据库中,如果在数据库中,那么我想适当地呈现内容。但是,如果没有,那么我希望它继续呈现real.aspx页面 在尝试使用HTTPModule时,我无法获取数据库中存在的页面来写出适当的内容。这是我的密码

如果有人问我这个问题,请原谅,但我想不出完成这项任务的最佳方法。我希望能够创建一个渲染系统,使我能够从数千个不同的.aspx页面渲染出内容,而无需创建数千个.aspx页面。尽管如此,如果代码中存在相应的.aspx页面,我仍然希望能够呈现它

例如,当向站点发出请求时,我想检查并查看该URL是否在数据库中,如果在数据库中,那么我想适当地呈现内容。但是,如果没有,那么我希望它继续呈现real.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动词


如果有人对如何完全重新设计这个有更好的想法,我也完全同意。谢谢。

我相信这说明了如何在处理程序中处理“正常”页面


我想您正在寻找一个简单的URL重写示例

因此,您有一个单独的页面“default.aspx”,它可以接受您想要显示的内容的参数“default.aspx?page=home”,但您不想要令人讨厌的查询字符串部分“?page=home”

这最好通过URL重写来解决,URL重写可以用作IIS中的ISAPI模块。因此,人们看到的不是上面的URL字符串,而是一个名为“home.aspx”的页面,web服务器将其转换为页面的“default.aspx?page=home”,该页面可以从数据库中获取“home”页面的内容,并将其显示在屏幕上

这是一个页面,提供了有关此流程良好实施的更多信息:


这将实现以下目的:

Type page_type = BuildManager.GetCompiledType ("~/page.aspx");
Page page = (Page) Activator.CreateInstance (page_type);
page.ProcessRequest (Context);