好吧,所以我的模型包含超过200个属性或字段,使用实体框架,这反映到数据库与1行200列。在视图中显示此模型时,只想显示仅包含数据或值的字段或属性。仅具有价值的MVC显示模型属性?
现在我可以通过每一个,并检查它是否有价值或不!但我想知道是否有更好的方法,所以我不必加载大厅模型,这将是90%空!
好吧,所以我的模型包含超过200个属性或字段,使用实体框架,这反映到数据库与1行200列。在视图中显示此模型时,只想显示仅包含数据或值的字段或属性。仅具有价值的MVC显示模型属性?
现在我可以通过每一个,并检查它是否有价值或不!但我想知道是否有更好的方法,所以我不必加载大厅模型,这将是90%空!
是的,你可以使用反射和每个在这里的样本
@{
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>
}
我做了修改,演示也会反映结果
希望它会帮助你
谢谢!它的作品,但如果我想显示显示名称[显示(名称=“X”)]而不是显示真实姓名 –
@ H.Rashid如何修改答案,告诉你如何显示名称 – Monah
一些代码,请 –
@ M.kazemAkhgary你真的想看看200点的属性:P –