如何使用MVC4从TempData解释HTML?

时间:2013-07-23 09:03:41

标签: html asp.net-mvc view tempdata

我尝试在里面显示带有HTML balise的TempData列表。是否有可能解释应答器,而不仅仅是显示它?

这是用来说明我想要的代码示例。

控制器:

List<string> ls = new List<string>();
ls.Add("<div> First div </div>");
ls.Add("<div> Another div </div>");
ls.Add("<div> Another div again </div>");
TempData.Add("ModelLs", ls);

查看:

var ls = (List<string>)TempData["ModelLs"];
foreach (string str in ls)
{
    @str
}

我想在我的页面上显示3个“真正的”div(而不是3 "<div> .... </div>")。我怎么能这样做?

3 个答案:

答案 0 :(得分:5)

使用Html.Raw它会返回非HTML编码的标记。

var ls = (List<string>)TempData["ModelLs"];
foreach (string str in ls)
{
    Html.Raw(str)
}

答案 1 :(得分:3)

如果我理解你,你想将字符串显示为HTML标记吗?

var ls = (List<string>)TempData["ModelLs"];
foreach (string str in ls)
{
    @(new HtmlString(str))
}

Html.Raw()也有效:

var ls = (List<string>)TempData["ModelLs"];
foreach (string str in ls)
{
    @(Html.Raw(str))
}

答案 2 :(得分:1)

以下代码对我来说很好

                                       @{var ls = (List<string>)TempData["ModelLs"];}

                                        <ul>
                                        @foreach (var str in ls)
                                        {
                                            if (!string.IsNullOrEmpty(str))
                                            {
                                                <li>
                                                    @Html.Label(str)
                                                </li>
                                                <br />
                                            }
                                        }
                                        </ul>