我正在阅读ASP.NET MVC及其所有有趣的用途,我刚刚发现了大约
DataTemplates.
我急于测试这个东西,我将一个更简单的模型转换为使用@ Html.displayForModel()和@ Html.EditForModel(),它就像一个幸运的魅力,它是:)
解决方法
您可以使用IMetadataAware接口创建属性,该属性将在元数据中设置ShowForEdit和ShowFordislay:
[AttributeUsage(AttributeTargets.Property,AllowMultiple = false,Inherited = true)] public class TemplatesVisibilityAttribute : Attribute,IMetadataAware { public bool ShowFordisplay { get; set; } public bool ShowForEdit { get; set; } public TemplatesVisibilityAttribut() { this.ShowFordisplay = true; this.ShowForEdit = true; } public void OnMetadataCreated(ModelMetadata Metadata) { if (Metadata == null) { throw new ArgumentNullException("Metadata"); } Metadata.ShowFordisplay = this.ShowFordisplay; Metadata.ShowForEdit = this.ShowForEdit; } }
然后您可以将它附加到您的财产,如下所示:
public class Templateviewmodel { [TemplatesVisibility(ShowForEdit = false)] public string ShowFordisplayProperty { get; set; } public string ShowAlwaysProperty { get; set; } }
这就是你所需要的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。