我的数据库中有整页HTML,我希望将HTML代码写入aspx页面。 意味着它将替换旧的HTML代码。
还有其他方法可以将HTML代码写入aspx页面。
答案 0 :(得分:5)
Id.InnerHtml =“html code”;
它为我工作
答案 1 :(得分:4)
使用 HttpHandler 执行此操作。只需从数据库中读取HTML页面并将其刷新到响应流。
确保使用web.config中的路由映射处理程序
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
}
<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);
}