簡體   English   中英

在ASP.NET MVC中構建HtmlStrings

[英]Building HtmlStrings in ASP.NET MVC

我有一個需要返回HtmlString的擴展方法。 該方法有一個循環,它將構建HtmlString,但是HtmlString對象沒有Append方法,並且不允許使用+運算符進行連接,所以我不確定如何構建HtmlString。

我想使用StringBuilder,但它沒有ToHtmlString方法......

這個的任何解決方案或模式?

為什么不在return MvcHtmlString.Create(sb.ToString());構建字符串然后return MvcHtmlString.Create(sb.ToString());

我想你想使用TagBuilder並看看使用TagBuilder類來構建HTML幫助程序

像下面..

   // Create tag builder
            var builder = new TagBuilder("img");

            // Create valid id
            builder.GenerateId(id);

            // Add attributes
            builder.MergeAttribute("src", url);
            builder.MergeAttribute("alt", alternateText);
            builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));

            // Render tag
            return builder.ToString(TagRenderMode.SelfClosing);

您可以查看用於創建HTML標記的fubu衍生產品 這是一個SO問題 ,討論了它的用法。

您可以自己編寫ToHtmlString()方法作為StringBuilder上的擴展方法。

有幾個解決方案,包括使用TagBuilder,但使用Html.Raw()對我來說非常好用:

 public static IHtmlString HtmlMethod(this HtmlHelper htmlhelper, Object object)
        {
 var sb = new StringBuilder();
foreach (var item in object)
{
sb.Append(object.outputStr)
}

return htmlHelper.Raw(sb.ToString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM