从C#中的字符串变量执行动态HTML

时间:2011-07-26 14:41:19

标签: asp.net-mvc

Data是一个表示youtube嵌入代码的字符串,可以从我的数据库中读取。这种字符串的一个例子是:

<iframe width="425" height="349" src="http://www.youtube.com/embed/Ki5GNq_3qT8" frameborder="0" allowfullscreen></iframe>

在我的控制器代码中,我有类似下面的内容:

// the parameter embed contains the youtube code
public ActionResult Index(string embed)
{
    ViewBag.Embed = embed;
    return View();
}

我的问题是如何编写将嵌入式HTML代码注入我视图的Razor代码?

3 个答案:

答案 0 :(得分:1)

您需要呈现为HTML字符串。请在您的视图中尝试此操作:

<body>
    @(new HtmlString((String)ViewBag.Embed))
</body>

希望这会有所帮助:)

修改

如果您正在尝试渲染整个字符串,那么如果它只是其中的一部分,那么ek_ny的答案是可行的方法。

答案 1 :(得分:0)

<iframe width="425" height="349" src="http://www.youtube.com/embed/@ViewBag.Embed" frameborder="0" allowfullscreen></iframe>

您可能还想确保代码是html编码的。

答案 2 :(得分:0)

尝试使用razor语法:

@: @ViewBag.Embed

@Html.Raw(ViewBag.Embed)