2017-09-05 15 views
0

我得到了一個使用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> 
+0

你可以用writer.ToString()得到輸出,然後從輸出中重新構建它。 Tha輸出對我來說看起來相當靜態,所以它不需要很長時間。 –

回答

1

翻譯是不是很難做,比如:

writer.WriteBeginTag("DIV"); 
writer.WriteAttribute("id", "showResult"); 
writer.Write(HtmlTextWriter.TagRightChar); 
writer.WriteEndTag("DIV"); 
writer.WriteLine(); 

結果

<div id="showResult"></div> 

因爲:

WriteBeginTag("DIV");寫入<div

然後我們得到writer.WriteAttribute("id", "showResult");

WriteAttribute增加了值的屬性,在這種情況下,屬性名稱是「ID」,和值爲「showResult」

writer.Write(HtmlTextWriter.TagRightChar);然後再寫入>,在隨後結束的開放<div標籤,我們有,所以我們再有<div id="showResult">

所有剩下則是關閉的標籤,這是與 writer.WriteEndTag("DIV");完成。 (這增加了</div>

記住這一邏輯,你應該沒有任何困難將這段代碼翻譯成一個像樣的aspx頁面。

+0

這部分對我來說很難: –

+0

writer.WriteBeginTag(「xml」); writer.WriteAttribute(「id」,「template」); –

+0

它說:元素xml不支持 –