Ваш пользовательский атрибут может быть получен из UIHint:
public class UnitOfMeasureAttribute : UIHintAttribute, IMetadataAware
{
public UnitOfMeasure(): base("foo")
{
}
public void OnMetadataCreated(ModelMetadata metadata)
{
throw new NotImplementedException();
}
}
и затем:
public class MyViewModel
{
[UnitOfMeasure]
public string Foo { get; set; }
}
или
public class MyViewModel
{
public string Foo { get; set; }
}
и в обоих случаях в представлении:
@Html.EditorFor(x => x.Foo)
в первом случае, очевидно, будет использоваться пользовательский шаблон ~/Views/Shared/EditorTemplates/foo.cshtml
, тогда как во втором - шаблон строки по умолчанию.