public class MyViewModel
{
[Required]
public string Foo { get; set; }
}
将分配:
@{
var isRequired = ViewData.ModelMetadata.IsRequired;
}
在相应的 editor/display 模板中。
如果您有自定义属性:
public class MyCustomStuffAttribute : Attribute, IMetadataAware
{
public void OnMetadataCreated(ModelMetadata metadata)
{
metadata.AdditionalValues["customStuff"] = "some very custom stuff";
}
}
以及用它装饰的视图模型:
public class MyViewModel
{
[MyCustomStuff]
public string Foo { get; set; }
}
在相应的 editor/display 模板中,你可以获取:
@{
var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"];
}
另外你应该完全阅读 Brad Wilson 的系列博客文章关于 ASP.NET MVC 中的 ModelMetadata 和模板是什么以及如何使用它。
1 回答
built-in 属性,例如
[Required]
在元数据上分配不同的属性(请参阅我在答案结尾处链接的博客文章以了解更多信息)。例如:将分配:
在相应的 editor/display 模板中。
如果您有自定义属性:
以及用它装饰的视图模型:
在相应的 editor/display 模板中,你可以获取:
另外你应该完全阅读 Brad Wilson 的系列博客文章关于 ASP.NET MVC 中的 ModelMetadata 和模板是什么以及如何使用它。