修改时的当前情况
我有一个编辑表单,允许用户更改硬件(模块)的所有权(提供给新客户)。 我所做的是,通过一个功能收集了所有可用的客户。此列表显示在下拉列表中,该下拉列表还包含硬件的当前所有者(客户)。
我想要实现的是在下拉列表中,我只想删除当前所有者(也是客户之一)。
这是代码视图
视图模型
public class ChangeOwnership
{
public ChangeOwnership()
{
}
public Guid CurrentOwnerId { get; set; }
public string CurrentOwner { get; set; }
public string SelectedNewOwner { get; set; }
public IEnumerable<SelectListItem> OwnerNames { get; set; }
}
在控制器中获取方法
[HttpGet]
public ActionResult ChangeModuleOwnership(long id)
{
var owners = _ownedModuleRepository.GetAllBusinessUnits();//businessunits = customers
var model = new ChangeOwnership
{
CurrentOwnerId = _ownedModuleRepository.GetOwnedModuleOwnerId(id),
CurrentOwner = _ownedModuleRepository.GetSelectedModuleOnwerName(id),
OwnerNames = owners.Select(m=> new SelectListItem
{
Value = m.Id.ToString(),
Text = m.Name
})
};
return View(model);
}
存储库功能
List<BusinessUnit> IOwnedModuleRepository.GetAllBusinessUnits()
{
return _dbSis.BusinessUnits.ToList();
}
我需要做什么才能从下拉列表中筛选出当前所有者,以便我只能展示潜在的新所有者(客户)?
答案 0 :(得分:1)
为什么你不在控制器中做这样的事情:
OwnerNames = owners
.Where(o => o.OwnerID != id) //Filter out the current owner here
.Select(m=> new SelectListItem
{
Value = m.Id.ToString(),
Text = m.Name
})