0
我有一个名为AppPrivilege
的模型对象,它包含一个名为PrivilegeName
的公共字符串属性。在控制器,我产生这些对象的集合,并把他们在ViewBag,如下(其他对象类型都定制到我的项目):在Razor中,如何根据元素的属性检查ViewBag IEnumerable对象中对象的存在性?
SQLRolerecord toCheckPrivs = new SQLRolerecord();
IEnumerable<AppPrivilege> privsOfUser = toCheckPrivs.getPrivsForRole(roleUser);
ViewBag.PrivilegeSet = privsOfUser;
return View();
在视图
现在,我怎么能检查是否存在具有我选择的PrivilegeName
的任何元素AppPrivilege
,例如“Read”?这是我想在视图中实现结构:
@if (ViewBag.PrivilegeSet != null)
{
if(ViewBag.PrivilegeSet.Contains(/*search criteria for PrivilegeName*/))
{
//valid code here
}
}
我来满足这种需求的方法包括产生一个潜在的大字符串连接在一起的所有PrivilegeName
值,并通过穿过ViewBag中,在我可以在视图中进行字符串检查。但是,这似乎不是表现友好的,所以我想以更合适的方式来做。
谢谢。
谢谢!有效。使用'=='而不是字符串方法有什么缺点? – ITWorker
在这个字符串到字符串的比较中,我更喜欢'='来提高可读性。这里有一篇关于它的好文章https://blogs.msdn.microsoft.com/csharpfaq/2004/03/29/when-should-i-use-and-when-should-i-use-equals/ – Shyju