2016-01-11 87 views
0

我使用HTMLTags庫來編寫一些MVC Html Helper類。但是我不想從頭開始編寫所有的東西,並且希望利用現有的MVC Html擴展Helper方法來完成某些代碼。問題是我無法弄清楚如何解析MVCHtmlString或字符串到HTMLTag。如何從字符串創建HtmlTag

我偶然發現了一箇舊的article,它提到HTMLTags庫使用Html Agility Pack做了它,但我無法在新版本中找到此方法。

有人可以幫助我如何解析字符串並將其轉換爲HtmlTag類?

回答

0

我最終創建了自己的擴展方法將MvcHtmlString轉換爲HtmlTag。

public static HtmlTag ToHtmlTag(this MvcHtmlString html) 
    { 
     HtmlTag htmlTag = null; 
     var doc = new HtmlDocument(); 
     doc.LoadHtml(html.ToHtmlString()); 
     var tag = doc.DocumentNode.FirstChild; 

     if (tag != null) 
     { 
      htmlTag = new HtmlTag(tag.Name); 
      foreach (var attribute in tag.Attributes) 
      { 
       htmlTag.Attr(attribute.Name, attribute.Value); 
      } 
     } 

     return htmlTag; 
    } 

我希望在HTML標籤庫將包含一些方法來解析字符串,但因爲它沒有這大概是我認爲第二個最好的方式。

現在我可以簡單的調用該擴展方法類似

var tag = html.TextBoxFor(expression, (String) null).ToHtmlTag();