2015-07-12 47 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