繁体   English   中英

MVC显示模型属性仅具有价值吗?

[英]MVC display model properties that has value only?

好了,因此我的模型使用Entity Framework包含200多个属性或字段,这反映到1行200列的数据库中。 在视图中显示此模型时,只想显示仅具有数据或值的字段或属性。

现在,我可以检查每一个,并检查它是否有价值! 但我想知道是否有更好的方法,这样我就不必加载将为90%null的大厅模型了!

是的,您可以使用反射,这里还有一个示例

@{
    var properties = Model.GetType().GetProperties();
}

@foreach(System.Reflection.PropertyInfo info in properties){
   var value = info.GetValue(Model,null);
   if(value!=null){
       <b>@info.Name</b> <i>@value</i>
   }
}

这是一个工作演示

在演示中,我设置了问题值,并且将answer属性保留为默认的“ null”,结果将显示问题,而答案将不存在,因为它具有null值

编辑以获取显示属性值,在这里您可以做什么

// to get the display Name
var da =info.GetCustomAttributes(typeof(DisplayAttribute),false)
            .Cast<DisplayAttribute>();
if(da.Count()>0) //to ensure that there is a [Display attribute
{
        <p>Display Name:<i>@da.First().Name</i></p>
}

我也修改了演示以反映结果

希望对你有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM