在asp.net页面内的某个文件中呈现静态html页面或html标记

在asp.net页面内的某个文件中呈现静态html页面或html标记,asp.net,Asp.net,我正在使用asp.net 3.5,希望将静态html文件的内容呈现到asp.net页面中,该页面在其中一个内容占位符中包含母版页。我已经考虑过使用iframe,但如果可能的话,我希望避免使用iframe。或者,如果更简单,我只想在一个html文件中读入一些文本,如: 并将其呈现到页面中的contentplaceholder中。我曾考虑过使用文字控件来实现这一点,但不确定这是否也能奏效。我试图解决的问题是,我希望能够让用户访问html页面或文本文件,并让他们用内容更新它。然后在运行时从该文件呈现h

我正在使用asp.net 3.5,希望将静态html文件的内容呈现到asp.net页面中,该页面在其中一个内容占位符中包含母版页。我已经考虑过使用iframe,但如果可能的话,我希望避免使用iframe。或者,如果更简单,我只想在一个html文件中读入一些文本,如:


并将其呈现到页面中的contentplaceholder中。我曾考虑过使用文字控件来实现这一点,但不确定这是否也能奏效。我试图解决的问题是,我希望能够让用户访问html页面或文本文件,并让他们用内容更新它。然后在运行时从该文件呈现html标记。这是应用程序中唯一一个我需要这个功能的页面,所以像CMS系统或html编辑器控件这样的东西是多余的。我只需要读取文件中的,并在asp.net页面中呈现html标记。另外,我希望呈现的标记使用我们已有的css,但我认为这是一种两种方式的方案。

您可以使用服务器端包括:

http://msdn.microsoft.com/en-us/library/3207d0e3(VS.71).aspx
或Response.WriteFile:


因为它包含在您的页面中,所以它肯定会采用您正在使用的任何CSS样式。

您可以使用服务器端包括:

http://msdn.microsoft.com/en-us/library/3207d0e3(VS.71).aspx
或Response.WriteFile:

由于它包含在您的页面中,因此肯定会采用您正在使用的任何CSS样式。

如果您使用文字,请确保设置:

literal.Mode = LiteralMode.PassThrough;
否则,您可能会创建一个特殊的WebControl或从Literal继承来处理此任务。然后,您可以使用自己的方法覆盖RenderHtmlTextWriter编写器或类似的编写器,检索需要渲染的文件,然后将其写入流

另一个选项可以是简单地调用Page.Response.writeFileName。不过,我不建议这样做,但这是一种选择响应的问题在于,它不一定会在您预期的时间发生。

如果您使用文本,请确保设置:

literal.Mode = LiteralMode.PassThrough;
否则,您可能会创建一个特殊的WebControl或从Literal继承来处理此任务。然后,您可以使用自己的方法覆盖RenderHtmlTextWriter编写器或类似的编写器,检索需要渲染的文件,然后将其写入流


另一个选项可以是简单地调用Page.Response.writeFileName。不过,我不建议这样做,但这是一种选择响应的问题在于,它不一定会在您期望的时候发生。

我会将您上面描述的外部文本文件中的文本读取到内存中,类似于MikeB解决方案中描述的内容,然后将其转换为可以添加到页面中的文字控件

protected void Page_Load(object sender, EventArgs e)
{
    LiteralControl literal = new LiteralControl( GetExternalHTML() );
    Page.Controls.Add(literal);
}

private string GetExternalHTML()
{
     StreamReader sr;
     string html;
     sr = File.OpenText("<path_to_file.txt>");
     html = sr.ReadToEnd();
     sr.Close();

     return html;
}

我会将您上面描述的外部文本文件中的文本读取到内存中,类似于MikeB解决方案中描述的内容,然后将其转换为可以添加到页面中的文字控件

protected void Page_Load(object sender, EventArgs e)
{
    LiteralControl literal = new LiteralControl( GetExternalHTML() );
    Page.Controls.Add(literal);
}

private string GetExternalHTML()
{
     StreamReader sr;
     string html;
     sr = File.OpenText("<path_to_file.txt>");
     html = sr.ReadToEnd();
     sr.Close();

     return html;
}

谢谢,从未听说过服务器端包含。谢谢,从未听说过服务器端包含。听起来这是我尝试做的最好的方式。谢谢听起来是我想做的最好的方式。谢谢