1

いくつかの HTML 作成ロジックをカプセル化したいと思います (たとえば、ASP.NET MVC カミソリ ページで最終的に使用するため)。プレーンな C# の構造化 API でこれを行うことはできますか?

手動でタグを作成して正しい文字列をエスケープする必要がある、エラーが発生しやすい文字列ベースの構造は避けたいと思います。XElementAPI (たとえば)のようなものですが、html 生成用: 最低限の整形式を処理し、ボイラープレートを回避する API です。

そのような API は存在しますか? HTMLフラグメントを安全かつ簡単に生成する最良の方法は何ですか?

4

1 に答える 1

2

ASP.NET MVC には組み込みの HTML ジェネレーターがあります。これはTagBuilderと呼ばれ、組み込みのすべての Html ヘルパーによって内部的に使用されます。

たとえば、次の HTML を生成します。

<div id="someId" class="someClass">
  <p class="paragraph">Some text</p>
  <input type="button" value="Click"/>
</div>

次のように見えます:

var div = new TagBuilder("div");
    div.GenerateId("someId");
    div.AddCssClass("someClass");
var p = new TagBuilder("p");
    p.AddCssClass("paragraph");
    p.SetInnerText("Some text"); //HtmlEncode the parameter
var button = new TagBuilder("input");
    button.MergeAttribute("type","button");
    button.MergeAttribute("value","click");

div.InnerHtml = (p.ToString() + button.ToString());

私たちのプロジェクトでは、通常、このTagBuilderようなものの周りに薄い流動的なラッパーを作成して、API をもう少し流動的にします。

サードパーティのライブラリを使用しても問題がなく、高度な機能が必要な場合は、以下を参照してください。

于 2012-08-22T17:05:39.343 に答える