1

C#を使用して基本的な HTML Web ページをレンダリングし、オブジェクトHTMLTextWriterに出力しようとしていますが、出力でタグをレンダリングする際に問題が発生しています。WebBrower<meta>HTML

私が出力することを期待しているもの..

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <title>My Website</title>
  </head>

  <body>
    <h1>Hello World!</h1>
  </body>

</html> 

現在出力されているもの..

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    </meta charset="UTF-8"><title>
      My Website
    </title>
    </head><body>
    <h1>
      Hello World!
    </h1>
  </body>
</html>

<meta>タグが単に ではなく<meta charset="UTF-8">&として出力されていることに注目してください。</meta charset="UTF-8"><meta charset="UTF-8">

この問題を修正するにはどうすればよいですか?

これが私が使用しているコードです..

var sw = new StringWriter();
using (var writer = new HtmlTextWriter(sw)) {
    writer.RenderBeginTag("!DOCTYPE html");
    writer.RenderBeginTag(HtmlTextWriterTag.Html);
        writer.RenderBeginTag(HtmlTextWriterTag.Head);
            writer.RenderBeginTag("meta charset=\"UTF-8\"");
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Title);
                writer.Write("SIT323 - My Website");
            writer.RenderEndTag();
        writer.RenderEndTag();
        writer.RenderBeginTag(HtmlTextWriterTag.Body);
            writer.RenderBeginTag(HtmlTextWriterTag.H1);
                writer.Write("Hello World!");
            writer.RenderEndTag();
        writer.RenderEndTag();
    writer.RenderEndTag();
};
return sw.ToString();
4

1 に答える 1

4

それを試してみてください:

writer.AddAttribute("charset", "UTF-8");
writer.RenderBeginTag(HtmlTextWriterTag.Meta);
// Other needed methods...
writer.RenderEndTag();

結果:

<meta charset="UTF-8">

マークアップ要素をレンダリングするためのコーディング パターンは次のとおりです。

  1. AddAttributeメソッドを使用して、要素に属性を追加します。

  2. RenderBeginTagメソッドを使用します。

  3. 必要に応じて他のメソッドを使用して、要素の開始タグと終了タグの間にあるコンテンツをレンダリングします。

  4. RenderEndTagメソッドを使用します。

于 2016-07-24T09:50:56.623 に答える