编码解码HTML 中的MVC标签(Encode Decode html tag in mvc

2019-10-29 13:12发布

我有评论框当我键入注释,如果评论有任何联系的话,我会自动转换为链接通过以下方式。

protected string MakeLink(string txt)
        {
            Regex regx = new Regex("(http|https)://([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);

            MatchCollection mactches = regx.Matches(txt);

            foreach (Match match in mactches)
            {
                txt = txt.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
            }

            return txt;
        }

当我把所述标签会显示这样的“LT; A HREF =‘ http://asd.com ’GT; http://asd.com LT; / A gt;”中[现在我除去&否则创建链接在我的问题。 ]

Answer 1:

使用@Html.Raw方法打印此方法的输出。 这种方法使得未编码的HTML。 更多关于MSDN

你可以在这里找到的例子: http://www.arrangeactassert.com/using-html-raw-in-asp-net-mvc-razor-views/



Answer 2:

+1以前的答案。 你也可以使用HtmlString类型

protected HtmlString MakeLink(string txt)
        {
            Regex regx = new Regex("(http|https)://([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);

            MatchCollection mactches = regx.Matches(txt);

            foreach (Match match in mactches)
            {
                txt = txt.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
            }

            return new HtmlString(txt);
        }


文章来源: Encode Decode html tag in mvc