When writing web pages in ASP.NET MVC, the standard way of outputting label names is often unsatisfactory as you end up with a label that follows a variable name, e.g. including a line like:
@Html.LabelFor(model => model.PadNumberLength)
ends up showing a label:
PadNumberLength
where you really want:
Pad Number Length
There are a number of other ways of changing the label, e.g. you could put a DisplayName attribute on the property in the model, e.g.
[DisplayName("Pad Number Length")] public int PadNumberLength { get; set; }
However, especially if you have come to ASP.NET MVC programming from a desktop environment such as Winforms or WPF, the most natural way to get a label name is from a resource file. This also makes it easier to localise your pages in the future.
An ASP.NET MVC project contains a Resources file under the Properties node in the solution explorer. You can put all your string resources in this file. To access the resources in a CSHTML file, include the following HTML helper in your solution:
public static MvcHtmlString ResourceString<T> (this HtmlHelper<T> html, string ResourceName) { var Manager = new ResourceManager(typeof(Properties.Resources)); return MvcHtmlString.Create(Manager.GetString(ResourceName)); }
This means you can then write labels such as:
<label>@Html.ResourceString("PAD_NUMBER_LENGTH")</label>
that output the resource strings from your Properties.Resources file.