Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# 通过streamreader保存html内容?_C#_Asp.net_Html - Fatal编程技术网

C# 通过streamreader保存html内容?

C# 通过streamreader保存html内容?,c#,asp.net,html,C#,Asp.net,Html,有没有办法将aspx页面的html内容保存在cs文件的pageload部分,并在回发时再次加载 也许使用streamreader保存它,然后让streamreader将内容写回 如果有的话,有人举过例子吗?ASP.NET有一个广泛的缓存机制,它可以实现您所描述的功能ASP.NET有一个广泛的缓存机制,它可以实现您所描述的功能。我使用了页面的Render()方法,而不是RenderContents方法。但是,我一辈子都记不起我为什么这么做了。在ASP.net版本引入缓存页面大部分内容(小部分除外)

有没有办法将aspx页面的html内容保存在cs文件的pageload部分,并在回发时再次加载

也许使用streamreader保存它,然后让streamreader将内容写回


如果有的话,有人举过例子吗?

ASP.NET有一个广泛的缓存机制,它可以实现您所描述的功能

ASP.NET有一个广泛的缓存机制,它可以实现您所描述的功能。我使用了页面的Render()方法,而不是RenderContents方法。但是,我一辈子都记不起我为什么这么做了。在ASP.net版本引入缓存页面大部分内容(小部分除外)的功能之前,可能已经出现过这种情况除非您真的需要这样做,否则请使用内置的缓存功能。

可以按照这些方法进行操作。我使用了页面的Render()方法,而不是RenderContents方法。但是,我一辈子都记不起我为什么这么做了。在ASP.net版本引入缓存页面大部分内容(小部分除外)的功能之前,可能已经出现过这种情况除非您确实需要这样做,否则请使用内置的缓存功能。

您的意思是这样的,通过覆盖
Render
方法捕获生成的HTML吗

protected override void Render(HtmlTextWriter writer)
{
    string pageSource;

    // setup a TextWriter to capture the markup
    using (var sw = new StringWriter())
    using (var htw = new HtmlTextWriter(sw))
    {
        // render the markup into our surrogate TextWriter
        base.Render(htw);

        // get the captured markup
        pageSource = sw.ToString();
    }

    // render the markup into the output stream
    writer.Write(pageSource);

    // now you can do what you like with the captured markup in pageSource
}

您的意思是这样的,通过覆盖
Render
方法捕获生成的HTML吗

protected override void Render(HtmlTextWriter writer)
{
    string pageSource;

    // setup a TextWriter to capture the markup
    using (var sw = new StringWriter())
    using (var htw = new HtmlTextWriter(sw))
    {
        // render the markup into our surrogate TextWriter
        base.Render(htw);

        // get the captured markup
        pageSource = sw.ToString();
    }

    // render the markup into the output stream
    writer.Write(pageSource);

    // now you can do what you like with the captured markup in pageSource
}


那么你是说如果没有就不可能了?我在哪里可以了解缓存?@Garrith Graham:阅读MSDN在线页面了解缓存。那么你是说如果没有就不可能了?我在哪里可以了解缓存?@Garrith Graham:阅读MSDN在线页面了解缓存。好吧,现在阅读缓存我想哇,为什么他们从来没有教过我们这些东西在学校!但是我如何在mysql中存储缓存页面?(这样内容就永远不会丢失)你真的那么在意内容永远不会丢失吗?你正在做一些超级日志类型的事情吗?我正在创建我自己的社交网络页面,如果一个用户登录后发现他没有挂帖(类似于facebook),那就不太好了。好吧,你不想将整个页面存储在数据库中。你想在数据库中存储个人帖子。好吧,现在读到缓存我想哇,为什么他们从来没有在学校教过我们这些东西!但是我如何在mysql中存储缓存页面?(这样内容就永远不会丢失)你真的那么在意内容永远不会丢失吗?你正在做一些超级日志类型的事情吗?我正在创建我自己的社交网络页面,如果一个用户登录后发现他没有挂帖(类似于facebook),那就不太好了。好吧,你不想将整个页面存储在数据库中。您想在数据库中存储单个帖子。@Garrith:它只是一个字符串。你需要将它保存在某个地方,以便以后能够再次使用它:在会话状态、应用程序状态、数据库中、光盘上,无论你喜欢什么。哦,对不起,这就是我的意思,如果我从mysql检索它,html内容如何重新显示到用户配置文件上?@Garrith Graham:你可以在文本控件中丢弃它,但是,如果你有任何活动内容(如asp.net控件等),那么在呈现页面时,这些内容将不起作用。它包含在内容页面中,而墙贴上唯一的控件是html控件(textarea和html按钮),是否仍然可以这样做?@Garrith:它只是一个字符串。你需要将它保存在某个地方,以便以后能够再次使用它:在会话状态、应用程序状态、数据库中、光盘上,无论你喜欢什么。哦,对不起,这就是我的意思,如果我从mysql检索它,html内容如何重新显示到用户配置文件上?@Garrith Graham:你可以在文本控件中丢弃它,但是,如果你有任何活动内容(如asp.net控件等),这些内容在呈现页面时将不起作用。它包含在内容页面中,而墙贴上唯一的控件是html控件(textarea和html按钮),是否仍然可以这样做?