C# 用于为ASP.NET MVC创建HTML的类XElement API
我想封装一些HTML创建逻辑(例如,最终用于ASP.NET MVC页面)。我可以用普通C#中的结构化API实现这一点吗 我希望避免容易出错的基于字符串的构造,在这种构造中,我需要手动构建标记并转义正确的字符串,因为这让我觉得维护起来更加困难,并且可能导致html注入漏洞。类似于C# 用于为ASP.NET MVC创建HTML的类XElement API,c#,.net,html,C#,.net,Html,我想封装一些HTML创建逻辑(例如,最终用于ASP.NET MVC页面)。我可以用普通C#中的结构化API实现这一点吗 我希望避免容易出错的基于字符串的构造,在这种构造中,我需要手动构建标记并转义正确的字符串,因为这让我觉得维护起来更加困难,并且可能导致html注入漏洞。类似于XElementAPI(例如),但用于html生成:一个至少考虑良好格式并避免样板文件的API 这样的API存在吗?安全方便地生成html片段的最佳方法是什么 ASP.NET MVC中有一个内置的HTML生成器。它被称为,
XElement
API(例如),但用于html生成:一个至少考虑良好格式并避免样板文件的API
这样的API存在吗?安全方便地生成html片段的最佳方法是什么 ASP.NET MVC中有一个内置的HTML生成器。它被称为,并在内部由所有用户使用 例如,生成以下HTML:
<div id="someId" class="someClass">
<p class="paragraph">Some text</p>
<input type="button" value="Click"/>
</div>
在我们的项目中,我们通常在TagBuilder
周围创建一个薄薄的流体包装器,类似于使it'sapi更具流动性
如果可以使用一些第三方库,并且需要一些高级功能,您可以查看:
- -可于
- -可于
System.Web.Mvc.dell
中看到了System.Web.Mvc.TagBuilder
类?该类由使用。请参见@nemesv:您有示例吗?这听起来像是一个答案…:-)@L.B.我对HtmlAgilityPack有很多经验,但它不适合这个。车相当多,相当慢,而且相当大。它还用于(更复杂的)解析凌乱的html,而不是生成干净的html。@eamonnerbanne我已将我的评论扩展为一个答案:)
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());