[英]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.