在MVC中将字符串渲染为html

时间:2016-06-01 20:10:24

标签: html asp.net-mvc hyperlink

类似的问题已被问到here,但答案并未解决我的问题。

如何将字符串呈现为html?基本上,我需要将一个字符串传递给具有" a"标签定义在其中。我想要的是将它渲染为可点击的实际html链接。

查看模型(简化):

public class MyViewModel
{
    public string MyLink { get; set; }
}

在控制器(简化)中:

public IActionResult Index()
{
    MyViewModel model = new MyViewModel();

    model.MyLink = "<a href="http://www.google.com">http://www.google.com</a>"

    return View(model);
}

在视图中(第一行):

@model MyNamespace.ViewModel.MyViewModel

然后在下面,这些html标记(数字后面的第1行)显示结果(第2行)。但它们都不是您可以点击的实际链接。

1
@Model.MyLink
<a href="http://www.google.com">http://www.google.com</a>

2
<pre>@Html.Raw(@Model.MyLink)</pre>
<a href="http://www.google.com">http://www.google.com</a>

3
@Html.Encode(@Html.Raw(@Model.MyLink))
&amp;lt;a href=&amp;quot;http://www.google.com&amp;quot;&amp;gt;http://www.google.com&amp;lt;/a&amp;gt;

4 
@Html.Encode(@Model.MyLink)
result same as #3.

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:7)

在控制器中使用

model.MyLink = HttpUtility.HtmlDecode(url);

然后在视图中使用

@Html.Raw(Model.MyLink)

第一个将其转换为使用