ASP.NET MVC中Display特性含双引号的属性如何在Razor视图正常显示?
ASP.NET MVC中Display特性Name属性包含双引号的显示问题
不需要自定义标签,只要在C#层面正确转义双引号,就能在Razor视图中正常显示。
正确的写法:
在C#特性的字符串中,双引号需要用C#的转义方式处理,有两种常用写法:
- 常规字符串转义(使用反斜杠):
[Display(Name = "Biological \"Parent\"?")] public bool? IsParent { get; set; }
- 逐字字符串(@开头,用两个连续双引号转义):
[Display(Name = @"Biological ""Parent""?")]
为什么你之前的尝试失败:
你直接在Name属性中使用了HTML实体",但Razor的HTML辅助方法(比如@Html.LabelFor或@Html.DisplayNameFor)会对输出内容进行HTML编码,导致&被转义成&,最终显示为Biological "Parent",不符合预期。
视图中正常渲染的方式:
在Razor视图中使用标准的HTML辅助方法即可直接显示带双引号的文本:
@Html.LabelFor(m => m.IsParent) <!-- 或 --> @Html.DisplayNameFor(m => m.IsParent)
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

