带HTML的Html.LabelFor labelText

时间:2012-10-16 18:04:07

标签: asp.net-mvc asp.net-mvc-3

目前它将HTML作为字符串返回。有没有一种简单的方法可以正确输出HTML?

@Html.LabelFor(m => m.DisplayName, 
                 Html.Raw(Html.Partial("_Tooltip", new Tooltip { 
                                     Title = Model.DisplayName, 
                                     Description = "This is my test description"}
                                     ).ToString())
                   .ToString())

3 个答案:

答案 0 :(得分:1)

如何使用常规HTML?

<label for="DisplayName">
    @Html.Partial("_Tooltip", new Tooltip { Title = Model.DisplayName, Description = "This is my test description" }
</label>

您遇到的问题是LabelFor帮助程序自动HTML转义标签,假设您只传递一个不应包含HTML的常规字符串。

答案 1 :(得分:1)

我可以通过为此创建扩展方法来解决此问题,请遵循以下示例:http://weblogs.asp.net/imranbaloch/archive/2010/07/03/asp-net-mvc-labelfor-helper-with-htmlattributes.aspx

除了我更新了这个:

tagBuilder.SetInnerText(innerText);

对此:

tagBuilder.InnerHtml = innerText;

答案 2 :(得分:0)

如果您不想使用原始html,请按以下步骤删除Html.Raw()功能:

@Html.LabelFor(m => m.DisplayName, Html.Partial("_Tooltip", new Tooltip { Title = Model.DisplayName, Description = "This is my test description" }).ToString().ToString())