Html.LabelFor Specified Text
C#asp.net MvcRazorC# Problem Overview
Anyone got any idea on how to specify text when using Html.LabelFor(c=>c.MyField)
. It's just MyField
might not be an appropriate name to display on screen, you may want "The Super Fantastic Field" instead, but there doesn't appear to be any overloads.
Any ideas?
C# Solutions
Solution 1 - C#
You use System.ComponentModel.DataAnnotations.DisplayAttribute
:
[Display(Name = "My Field")]
public string MyField { get; set; }
Setting the ResourceType
property on your attribute will allow you to use a resource file.
(Prior to .NET 4 use System.ComponentModel.DisplayNameAttribute
with the caveat that the display name must be a compile-time constant.)
Solution 2 - C#
Easy solution just add the following in the view:
@Html.LabelFor(c=>c.MyField, "My Field")
Solution 3 - C#
There is a new overload in MVC 3 so you should be able to specifiy custom test for the labelfor helper.
Solution 4 - C#
I haven't downloaded v2 yet, so I can't test, but I believe it works like DynamicData, in which case you'd do something like this on your model:
[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
Solution 5 - C#
There are two ways
1"direct annotations"
2"Annotatinos with a resource"
Direct annotations
[Display(Name = "My Field")]
public string MyField { get; set; }
Annotatinos with a resource
[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }
Second way will require to add a value in resource file probably named as Resource.resx.
Use which suits your purpose.
Solution 6 - C#
I haven't checked out CP1 yet but I read over Scott's release of it and I seem to recall that the code was generated by T4. I suppose you could always mod that, but I would suspect that they will provide overloads in CP2.
Edit: The source is always available and thus you could just mod the method, change the T4 generator, and you'll be good to go. Also put in a ticket or request (somehow) for that mod so it gets worked into the next version.
Solution 7 - C#
There are 5 overloads. Several offer second parameter of "string labelText", which you would set to "The Super Fantastic Field".