InnerHtml将特殊字符转换为asp.net mvc中的html标签

时间:2016-01-08 09:41:45

标签: asp.net asp.net-mvc

如果我发送数据<test>,我会将其转换为html标签<test></test>,请帮助!!

public static MvcHtmlString AnchorRowSelection(this HtmlHelper helper, string displayText, string title, string CssClass, string onclick, bool isModernPortal)
    {
        string className = ".body-row";
        // Building anchor tag html
        var Anchor = new TagBuilder("a");
      //  if(!string.IsNullOrWhiteSpace(displayText))
        Anchor.InnerHtml = ControlUtilities.EncodeEmptyText(displayText);
        if(!string.IsNullOrWhiteSpace(title))
            Anchor.Attributes.Add("title", title);
        if(!string.IsNullOrWhiteSpace(CssClass))
            Anchor.Attributes.Add("class", CssClass);
        if(!string.IsNullOrWhiteSpace(onclick))
        {
            string onclickString = string.Format("Javascript:highliteRowSelection(this, '{0}');{1}", className, onclick);
            Anchor.Attributes.Add("onclick", onclickString);
        }
        return MvcHtmlString.Create(Anchor.ToString(TagRenderMode.Normal));
    }

我更改了内部html以设置内部文本,但我面临一些其他问题

1 个答案:

答案 0 :(得分:0)

如果您希望XML解析器不解析视图中的XML标记,则有两种方法可以解除此问题。

<html><![CDATA[This is <b>bold</b>]]></html>

<html>How to escape &lt;b&gt;bold&lt;/b&gt;</html>
  

转义文本意味着整个HTML块将是一个大文本节点。在CDATA中包装告诉XML解析器不要解析该部分。它可能更容易&#34;但是限制你的能力下调,只应在适当的时候使用;不只是因为它更方便。转义标记被认为是有害的。

Reference