Rol*_*epp 5 display-templates asp.net-mvc-3
我正在阅读ASP.NET MVC及其所有有趣的用法,我刚刚发现了DataTemplates.
在我急着要测试这个东西出来,我将我简单的模型之一到使用@Html.DisplayForModel(),并@Html.EditForModel()和它的工作就像一个幸运符,它是:)
我立即发现的一件事是,我无法轻松定义一个字段来显示在显示视图上,但根本不存在用于编辑......
tpe*_*zek 12
您可以使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以将它附加到您的财产,如下所示:
public class TemplateViewModel
{
[TemplatesVisibility(ShowForEdit = false)]
public string ShowForDisplayProperty { get; set; }
public string ShowAlwaysProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的.
| 归档时间: |
|
| 查看次数: |
2857 次 |
| 最近记录: |