我使用LINQ查詢從資料庫中獲取了資料。
var data = (from z in db.BlogPostTbl
where z.PostId == id
select z).ToList()。
在這個結果中,我有一個屬性名稱user_rankings。這個欄位的值在資料庫中是[1,2,3],但是我必須顯示為如果是3就好,如果是2就更好,如果是1就最好。我怎樣才能做到這一點?
<td><b>用戶排名:</b> @Html.DisplayFor(modelItem => item.user_rankings) < /td>
uj5u.com熱心網友回復:
使用Enum型別的例子。
定義UserRankingEnum型別和GetEnumDescription()方法,通過enum值獲得一個描述:
using System.ComponentModel;
使用System.Linq.ComponentModel; 使用System.Linq.ComponentModel
using System.Reflection;
namespaceWebApp.Models
{
public class BlogPost {
{
public int PostId { get; set; }
public int users_rankings { get; set; }
}
public enum UserRankingEnum
{
[Description("BEST")]
最佳=1。
[Description("BETTER")]
更好=2。
[Description("GOOD")]
好=3]
}
public static class EnumExtension
{
public static string GetEnumDescription(this UserRankingEnum value)
{
if (value.GetType().GetField(value.ToString() is FieldInfo fi)
{
if (fi.GetCustomAttributes(typeof(DescriptionAttribute), false) is DescriptionAttribute[] attributes && attributes.Any()
{
return attributes.First().Description;
}
}
return value.ToString();
}
}
}
相應的視圖:
@using WebApp.Models
@model IList<WebApp.Models.BlogPost>
@foreach (var item in Model)
{
<div>
<b>用戶排名: </b>
@{ var description = ((UserRankingEnum)item.user_rankings).GetEnumDescription(); @Html.DisplayFor(m => description) }
</div>
}
uj5u.com熱心網友回復:
一種可能性是使用一個單獨的視圖模型類/poco,并將資料庫物體映射到這個poco:
var data = (from z in db.BlogPostTbl
where z.PostId == id
select new BlogPostViewModel()
{
排名 = GetRankingDescription(z.user_rankings)
}).ToList()。
public class BlogPostViewModel
{
public string Ranking { get; set; }
}
private static string GetRankingDescription(int ranking)
{
switch (ranking)
{
case 1:
return "best"。
case 2:
return"better"。
case 3
return"good"。
default
return ""。
}
uj5u.com熱心網友回復:
我想你想要這樣的東西
// razor頁面內
@foreach (var item in Model)
{
string rank_ = ""/span>;
switch(item.user_rankings)
{
case "1":
ward_ = "BEST"/span>;
break;
case "2":
ward_ = "BETTER";
break;
case "3":
ward_ = "GOOD";
break;
}
<td><b>用戶排名:</b> @rank_ </td>
}
uj5u.com熱心網友回復:
我可以發誓,你可以使用
。public enum UserRankingEnum
{
[Description("BEST")]
最佳=1。
[Description("BETTER")]
更好=2。
[Description("GOOD")]
好=3]
}
然后
@Html.DisplayFor(modelItem => item.user_rankings)
將顯示描述。事實上檢查了一些代碼,它應該可以做到。 雖然這取決于你的需求,像多語言的原因可能意味著你傾向于一個表格或其他方式來支持它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/310112.html
標籤:
