我正在将一个模型绑定到视图。
public class Validation
{
[Display("Please enter in <h5>day(s)</h5>")]
public string Message { get; set; }
}
这里Message
属性将被设置为Please enter in <h5>day(s)</h5>
。
在视图中,我将模型属性绑定到LabelFor
。
@Html.LabelFor(m => m.Message)
期望输出为
Please enter in day(s)
但实际输出是
Please enter in <h5>day(s)</h5>
我希望字符串的一部分在大小和化妆品上有所不同,所以我不想在整个标签上应用CSS。
您的显示字符串"<h5>some text</h5>"
将呈现为文本,而不是HTML。MVC将把<
>
字符编码为<
>
,使它们按原样显示。
无论如何,你不应该想这样做。
正确的方法是应用显示字符串来包含您想要的文本:
[Display("some text")]
然后创建一个CSS类:
label.fancyLabel {
/* your style here that makes a label look like a h5 */
}
然后将该类应用于标签(来自.NETMVC-如何将类分配给Html.LabelFor?):
@Html.LabelFor(m => m.Message, new { @class= "fancyLabel" })
至于您的编辑,如果您只想将Display
属性的文本呈现为文本HTML,您必须:
- 介绍您自己的HTML助手
- 在那里,写一个标签(并确保设置了
for=
属性) - 读取DisplayAttribute的值
@Html.Raw()
,该值作为标签文本- 使用
@Html.YourLabelHelper(m => m.Message)
对其进行渲染
但是在你的模型上使用HTML是不可取的。视图和模板应该决定如何渲染模型,而不是相反。