强类型HTML帮助程序中的HTML代码

时间:2011-01-20 09:54:50

标签: asp.net asp.net-mvc

所以,我很难让这个工作。我正在尝试将一些印刷HTML代码添加到我强烈键入模型的某些标签中。

<%: Html.LabelFor(m => m.Name) %>

我正在使用数据注释来自定义属性的DisplayName

[DisplayName("Your friend&rsquo;s name")]
public string Name { get; set; }

但是标签显示的是实际代码:

Your friend&rsquo;s name

我也尝试过使用旧的write方法:

<%= Html.LabelFor(m => m.Name) %>

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

LabelFor将始终将字符串编码为Html。您可能希望为此帮助程序创建一个覆盖,以输出未编码的字符串。比如Html.HtmlLabelFor()

如果您需要查看原始帮助程序的内部,也可以使用MVC的源代码。 http://www.codeplex.com/aspnet

如果您正在使用MVC3和Razor,则在页面上呈现时,所有字符串都将编码为HTML。那么你应该查看HtmlString类,如果你将它返回给一个帮助器类,那么它将呈现为HTML。

http://davidhayden.com/blog/dave/archive/2010/12/27/HtmlRawRazorViewEngine.aspx

答案 1 :(得分:0)

似乎没有办法做到这一点。我简单地使用了实际渲染的代码,它显示得很好。

[DisplayName("Your friend’s name")]
public string Name { get; set; }