I have the follwing question about MVC 2 with C#.
Here is my Model:
public class Pmjob
{
[Tooltext=\"Hier soll der Name eingegeben werden\"]
[D
Create an abstract class MetaDataAttribute :
public abstract class MetadataAttribute : Attribute
{
///
/// Method for processing custom attribute data.
///
/// A ModelMetaData instance.
public abstract void Process(ModelMetadata modelMetaData);
}
Make your attribute inherit from MetaDataAttribute :
public class ToolTextAttribute : MetadataAttribute
{
public string Text { get; set; }
public TooltextAttribute(string text)
{
this.Text = new text;
}
public override void Process(ModelMetadata modelMetaData)
{
modelMetaData.AdditionalValues.Add("ToolText", this.Text);
}
}
Create the custom MetaDataProvider :
public class CustomModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(
IEnumerable attributes,
Type containerType,
Func
And replace the default one (global.asax.cs) :
protected void Application_Start()
{
// snipped
ModelMetadataProviders.Current = new CustomModelMetadataProvider();
}
Finally, you can access it in your view (or in a Html Helper ) :
(string)ViewData.ModelMetadata.AdditionalValues.Where(x => x.Key == "ToolText").SingleOrDefault()
Source :