In my ViewModel there is a property that needs a 2 line label but when I place a <br />
in the DisplayName
attribute the HTML code is printed to the page instead of being interpreted as a line break. Is there a way to get a DisplayName
to have a line break in it?
View:
<tr>
<td>
@Html.LabelFor(m => m.GrossGallons)
</td>
<td>
</td>
</tr>
ViewModel:
[DisplayName("Gross Gallons <br /> (Max: 6,000)")]
public decimal GrossGallons { get; set; }
Output trying to get:
Gross Gallons
(Max: 6,000)
There is a simple way of doing this - use \n
instead of <br />
, and use CSS to make it work.
Model:
[DisplayName("Gross Gallons\n(Max: 6,000)")]
public decimal GrossGallons { get; set; }
CSS:
label { white-space: pre-wrap; }
I would recommend making the CSS selector as specific as possible, so as not to catch other labels (in case you're using labels by hand elsewhere, where your source code may contain whitespace). For example, in bootstrap I would've applied this to label.control-label
.
You could also attach a more specific style to that label only, and style only that class.
@Html.LabelFor(m => m.GrossGallons, new { @class = "multiline-label" })