我得到了一個使用HtmlTextWriter編寫的舊的showxml網頁。我沒有足夠的使用HtmlTextWriter方法的經驗,並且有一些問題需要控制。我需要xsl,xml,js和他們的id。因爲頁面元素使用它們的ID來控制彼此。所以我想把它轉換成簡單的asp.net頁面。有什麼辦法呢?下面是我的代碼:將c#HtmlTextWriter頁面轉換成簡單的asp.net
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
protected override void Render(HtmlTextWriter writer)
{
Response.Buffer = true;
Response.ContentEncoding = Encoding.UTF8;
String number_appl = "20170001";
String objIntel = "marks";
String username;
username = User.Identity.Name;
writer.WriteFullBeginTag("html");
writer.WriteLine();
writer.WriteBeginTag("meta");
writer.WriteAttribute("http-equiv", "Content-Type");
writer.WriteAttribute("content", "text/html; charset=utf-8");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteLine();
writer.WriteBeginTag("xml");
writer.WriteAttribute("id", "template");
writer.WriteAttribute("src", "/edit/source.aspx?objIntel=" + objIntel + "&filename=template.xml&un=");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("xml");
writer.WriteLine();
writer.WriteBeginTag("xml");
writer.WriteAttribute("id", "data");
writer.WriteAttribute("src", "/edit/source.aspx?objIntel=DataBase\\" + objIntel + "&filename=\\xmls\\" + number_appl + ".xml&un=" + username);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("xml");
writer.WriteLine();
writer.WriteBeginTag("xml");
writer.WriteAttribute("id", "style");
writer.WriteAttribute("src", "/edit/source.aspx?objIntel=" + objIntel + "&filename=b7b.xsl&un=" + username);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("xml");
writer.WriteLine();
writer.WriteBeginTag("xml");
writer.WriteAttribute("id", "xmlerror");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteBeginTag("XMLDATA");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("XMLDATA");
writer.WriteEndTag("xml");
writer.WriteLine();
writer.WriteBeginTag("LINK");
writer.WriteAttribute("REL", "STYLESHEET");
writer.WriteAttribute("HREF", "/edit/styles.css");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("LINK");
writer.WriteLine();
writer.WriteBeginTag("script");
writer.WriteAttribute("language", "JScript");
writer.WriteAttribute("src", "/edit/source.aspx?objIntel=" + objIntel + "&filename=showxml.js");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("script");
writer.WriteLine();
writer.WriteBeginTag("TITLE");
writer.Write(HtmlTextWriter.TagRightChar);
writer.Write(number_appl);
writer.WriteEndTag("TITLE");
writer.WriteLine();
writer.WriteBeginTag("body");
writer.WriteAttribute("alink", "#006666");
writer.WriteAttribute("Link", "#006666");
writer.WriteAttribute("Vlink", "#006666");
writer.WriteAttribute("bgcolor", "#f0fff0");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteLine();
writer.WriteBeginTag("DIV");
writer.WriteAttribute("id", "showResult");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("DIV");
writer.WriteLine();
writer.WriteBeginTag("FORM");
writer.WriteAttribute("ENCTYPE=", "multipart/form-data");
writer.WriteAttribute("action", "savexml.aspx?un=" + username);
writer.WriteAttribute("method", "POST");
writer.WriteAttribute("name", "FORM1");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteBeginTag("INPUT");
writer.WriteAttribute("type", "submit");
writer.WriteAttribute("name", "Enter");
writer.WriteAttribute("value", "Зафиксировать изменения");
writer.WriteAttribute("onClick", "achSendDataToServer()");
writer.WriteEndTag("INPUT");
writer.WriteBeginTag("INPUT");
writer.WriteAttribute("type", "hidden");
writer.WriteAttribute("name", "blob");
writer.WriteAttribute("value", "blob_xml");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("INPUT");
writer.WriteBeginTag("INPUT");
writer.WriteAttribute("type", "hidden");
writer.WriteAttribute("name", "appl_number");
writer.WriteAttribute("value", number_appl);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("INPUT");
writer.WriteBeginTag("INPUT");
writer.WriteAttribute("type", "hidden");
writer.WriteAttribute("name", "vid");
writer.WriteAttribute("value", objIntel);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("INPUT");
writer.WriteBeginTag("INPUT");
writer.WriteAttribute("type", "hidden");
writer.WriteAttribute("name", "un");
writer.WriteAttribute("value", username);
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("INPUT");
writer.WriteEndTag("FORM");
writer.WriteLine();
writer.Write("<?xml version=\"1.0\" encoding=\"utf-8\"?> <user name=\"u_name\"> </user>");
writer.WriteEndTag("body");
writer.WriteLine();
writer.WriteEndTag("html");
}
</script>
你可以用writer.ToString()得到輸出,然後從輸出中重新構建它。 Tha輸出對我來說看起來相當靜態,所以它不需要很長時間。 –