我有一个我也使用的枚举值" displayname"我想将它作为参数传递给搜索,到目前为止我做的是:
public enum Gender
{
[Display(Name = "Man & Weman")]
EvryOne = 0,
[Display(Name = "Man")]
Man = 1,
//Etc...
}
public static class EnumExtensions
{
public static string GetEnumDisplayName(this Enum enumValue)
{
return enumValue.GetType()
.GetMember(enumValue.ToString())
.First()
.GetCustomAttribute<DisplayAttribute>()
.GetName();
}
public ActionResult EventsList(string query = null)
{
if (!string.IsNullOrWhiteSpace(query))
{
query = query.Trim();
upCommingLecture = upCommingLecture
.Where(g =>
g.Address.Contains(query) ||
Enum.IsDefined(typeof(Gender), query) ||
//Etc...
}
}
}
我使用的操作链接:
@Html.ActionLink("#ISFor " +
@Model.LectureGig.Gender.GetEnumDisplayName() +" "+ "|", "EventsList", "Events", new
{
@query = Model.LectureGig.Gender.GetEnumDisplayName()
}, null)
我得到的错误是:
LINQ to Entities无法识别方法&#39;布尔IsDefined(System.Type,System.Object)&#39;方法,并且此方法无法转换为商店表达式。
所以我需要做的是将GetEnumDisplayName
中的值与我的枚举列表中的GetEnumDisplayName
进行比较。
提前致谢