好吧,所以我的模型包含超過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 –