在aspx页面中编写Html代码

时间:2009-10-26 12:09:36

标签: asp.net

我的数据库中有整页HTML,我希望将HTML代码写入aspx页面。 意味着它将替换旧的HTML代码。

还有其他方法可以将HTML代码写入aspx页面。

5 个答案:

答案 0 :(得分:5)

Id.InnerHtml =“html code”;

它为我工作

答案 1 :(得分:4)

使用 HttpHandler 执行此操作。只需从数据库中读取HTML页面并将其刷新到响应流。

确保使用web.config中的路由映射处理程序

代码:PageWriter HttpHanlder

using System;
using System.Collections.Generic;
using System.Web;

/// <summary>
/// Summary description for PageWriter
/// </summary>
public class PageWriter : IHttpHandler
{
    public PageWriter()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    #region IHttpHandler Members

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        try
        {
            string htmlPageFromDatabase = string.Empty;

            //Read the HTML Page content into htmlPageFromDatabase from database

            context.Response.Write(htmlPageFromDatabase);
        }
        catch (Exception ex)
        {
            context.Response.Write("Page could not be loaded due to " + ex.Message);
        }
    }

    #endregion
}

WEB.CONFIG

<httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add path="PageFromDatabase.aspx" verb="GET" type="PageWriter" />
</httpHandlers>

在此之后,您可以从http://yourserver/yourapp/PageFromDatabase.aspx [例如:http://localhost/mywebsite/PageFromDatabase.aspx]

访问您的网页

答案 2 :(得分:2)

你可以放一个&lt; asp:Literal ...&gt;控制页面并将Text属性设置为数据库中的文本。

或者,如果你真的是从数据库得到的整个页面内容,你可以创建一个.ashx HttpHandler并执行Response.Write()将HTML写回响应流。这样的事情应该有效:

public void ProcessRequest(HttpContext context)
{
    int id = 0;

    if (context.Request.QueryString["id"] != null)
        int.TryParse(context.Request.QueryString["id"], out id);

    if (id != 0)
    {
        var con = new SqlConnection("myconnectionstring");
        var cmd = new SqlCommand("SELECT html FROM mytable WHERE id = @id", con);
        cmd.Parameters.Add("id", id);

        object html = cmd.ExecuteScalar();

        if (html != null)
            context.Response.Write(html);
    }
    else
        context.Response.Write("No content found");
}

答案 3 :(得分:0)

试试这个:

string newHtml = "...";
Response.Clear();
Response.Write(newHtml);
Response.End();

答案 4 :(得分:0)

页面上有什么样的HTML?它有一个主页吗?为什么页面上有html要替换?

您可以覆盖页面的Render事件并写出html。

protected override void Render(HtmlTextWriter writer)
{
    writer.Write(newHtmlGoesHere);
}