2015-07-12 60 views
1

好吧,所以我的模型包含超过200个属性或字段,使用实体框架,这反映到数据库与1行200列。在视图中显示此模型时,只想显示仅包含数据或值的字段或属性。仅具有价值的MVC显示模型属性?

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

+0

一些代码,请 –

+1

@ M.kazemAkhgary你真的想看看200点的属性:P –

回答

1

是的,你可以使用反射和每个在这里的样本

@{ 
    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> 
    } 
} 

这里工作demo

在演示中,我设置的问题,价值,我不停的答案财产作为默认的“空“,结果该问题将被显示并且回答将不会因为它具有空值

编辑 获取显示属性值,这里是什么哟ü可以做

// 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> 
} 

我做了修改,演示也会反映结果

希望它会帮助你

+0

谢谢!它的作品,但如果我想显示显示名称[显示(名称=“X”)]而不是显示真实姓名 –

+1

@ H.Rashid如何修改答案,告诉你如何显示名称 – Monah