我想在[Required]我的DateTime编辑器模板中添加一个属性,以便我可以添加相应的验证方案或DataType.Date属性,以便我知道何时只应显示日期.但我无法弄清楚如何获取元数据,说明编辑器模板为其分配了哪些属性.
Dar*_*rov 15
内置属性,例如[Required]在元数据上分配不同的属性(请参阅我在答案结尾处链接的博客文章以了解更多信息).例如:
public class MyViewModel
{
[Required]
public string Foo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将分配:
@{
var isRequired = ViewData.ModelMetadata.IsRequired;
}
Run Code Online (Sandbox Code Playgroud)
在相应的编辑器/显示模板中.
如果您有自定义属性:
public class MyCustomStuffAttribute : Attribute, IMetadataAware
{
public void OnMetadataCreated(ModelMetadata metadata)
{
metadata.AdditionalValues["customStuff"] = "some very custom stuff";
}
}
Run Code Online (Sandbox Code Playgroud)
以及用它装饰的视图模型:
public class MyViewModel
{
[MyCustomStuff]
public string Foo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在相应的编辑器/显示模板中,您可以获取:
@{
var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"];
}
Run Code Online (Sandbox Code Playgroud)
另外,您应该阅读Brad Wilson 关于ASP.NET MVC中的ModelMetadata和模板以及如何使用它的一系列博客文章.
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |