我正在绑定一个模型来查看。
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应用于整个标签并不是我想要的。
答案 0 :(得分:1)
您的显示字符串"<h5>some text</h5>"
将呈现为文本,而不是HTML。 MVC会将<
>
个字符编码为<
>
,使其按原样显示。
无论如何,你不应该这样做。
正确的方法是应用显示字符串以包含所需的文本:
[Display("some text")]
然后创建一个CSS类:
label.fancyLabel {
/* your style here that makes a label look like a h5 */
}
然后将该类应用于标签(来自.NET MVC - How to assign a class to Html.LabelFor?):
@Html.LabelFor(m => m.Message, new { @class= "fancyLabel" })
对于您的修改,如果您只想将Display
属性的文字呈现为文字HTML,则必须:
for=
属性)。@Html.Raw()
该值为标签文字。@Html.YourLabelHelper(m => m.Message)
进行渲染。但是在你的模型上使用HTML并不是真的可取。视图和模板应该决定如何渲染模型,而不是相反。