0

编辑时的现状

我有一个编辑表单,允许用户更改硬件(模块)的所有权(将其提供给新客户)。我所做的是,通过一个函数收集所有可用的客户。此列表显示在下拉列表中,其中还包含硬件的当前所有者(客户)。

我想要实现的是在下拉列表中,我只想删除当前所有者(也是客户之一)。

这是代码视图

视图模型

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();
    }

我需要做什么才能从下拉列表中过滤掉当前所有者,以便我只能显示潜在的新所有者(客户)?

4

1 回答 1

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
                    })
于 2013-08-05T12:19:42.380 回答