【发布时间】:2016-10-01 08:48:23
【问题描述】:
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
@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))
&lt;a href=&quot;http://www.google.com&quot;&gt;http://www.google.com&lt;/a&gt;
4
@Html.Encode(@Model.MyLink)
result same as #3.
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
取决于“将字符串传递给视图”的含义。您的方法使用 IActionResult 并且应该返回一个视图。如果您不想返回视图,那么您可能希望使用 json 响应返回到 ajax 调用,然后使用 jQuery 附加新的 html。
-
抱歉不清楚。该方法正在返回一个视图(模型)。这就是我在视图中使用的(@Model)。如果我只能弄清楚如何大声笑,我会编辑我的问题。
-
好吧,推荐要做的就是通过模型传递数据,让视图本身呈现 html。但是,您可以将字符串传递给 javascript 变量,然后使用 jQuery 将其添加到 DOM。我真的不推荐这个,但它在技术上会起作用。
-
我已经更新了我的问题,以明确控制器返回视图的内容。您能否举例说明您对 jQuery 的建议?
-
在一些
标签: html asp.net-mvc hyperlink