我已经实现了一个访问级别系统,可以防止/允许访问不同的文档类型。
我有几个索引页可以列出多种类型的文档。这些可以使用下拉列表进行过滤。
我想不出一种可以适当地自动绑定下拉列表的方法,这样它就不会显示当前用户无权访问的文档。
是否有一些自定义模型绑定/泛型/html 辅助魔法可以帮助我,还是我过于完美主义?
我的代码自动取款机:
ViewBag.DocumentTypesList = new SelectList(
new Dictionary<DocumentTypeForUI, string>
{
{ DocumentTypeForUI.Invoice, DocumentType.Invoice.Localize() },
{ DocumentTypeForUI.CreditNote, DocumentType.CreditNote.Localize() },
},
"Key",
"Value",
ViewBag.Type);
我不想在每个索引页上重复:
var dict = new Dictionary<DocumentTypeForUI, string>();
if (CurrentUser.HasAccessTo(DocumentType.Invoice))
{
dict.Add({ DocumentTypeForUI.Invoice, DocumentType.Invoice.Localize() });
}
if (CurrentUser.HasAccessTo(DocumentType.CreditNote))
{
dict.Add({ DocumentTypeForUI.CreditNote, DocumentType.CreditNote.Localize() });
}
ViewBag.DocumentTypesList = new SelectList(
dict,
"Key",
"Value",
ViewBag.Type);
理想:
ViewBag.DocumentTypesList = Magic.GenerateASelectListFor({DocumentType.Invoice, Documentype.CreditNote});