我会将其创建为应用于List<user>
或任何您的 userRepository.GetAll() 返回的扩展方法,因此在您的代码中您可以将所有这些用法替换为
ViewData["Users"] = userRepository.GetAll().ToSelectList();
编辑代码示例:有两种方法可以做到这一点
public static List<SelectListItem> ToSelectList(this List<Agent> users)
{
List<SelectListItem> items = new List<int>();
foreach (var user in users)
{
var item = new SelectListItem { Text = user.FriendlyName,
Value = user.UserId.ToString() };
if (User.Identity.Name == user.UserName)
item.Selected = true;
items.Add(item);
}
return items;
}
用法就像
userRepository.GetAll().ToSelectList();
或者,如果您在扩展方法中遇到身份问题
public static List<SelectListItem> ToSelectList(this List<Agent> users,
string selectedUserName)
{
List<SelectListItem> items = new List<int>();
foreach (var user in users)
{
var item = new SelectListItem { Text = user.FriendlyName,
Value = user.UserId.ToString() };
if (user.UserName == selectedUserName)
item.Selected = true;
items.Add(item);
}
return items;
}
用法就像
userRepository.GetAll().ToSelectList(User.Identity.Name);