0

Текущей ситуации во время редактированияВо время редактирования, не показывая текущее значение в качестве списка доступного элемента в DropDownList

У меня есть формы редактирования, где пользователь будет позволено сменить владелец (предоставить его новый клиенту) из аппаратное обеспечение (модуль). То, что я сделал, через функцию собрал всех доступных клиентов. Этот список отображается в раскрывающемся списке, в котором также содержится текущий владелец (клиент) оборудования.

Что я хочу для достижения находится в выпадающем списке, я просто хочу удалить текущего владельца (также одного из клиентов).

Здесь код зрения

ViewModel

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

Repository функция

List<BusinessUnit> IOwnedModuleRepository.GetAllBusinessUnits() 
    { 
     return _dbSis.BusinessUnits.ToList(); 
    } 

Что мне нужно сделать, чтобы я мог отфильтровать текущего владельца из выпадающего списка, чтобы я мог показывать только потенциальных новых владельцев (клиентов)?

ответ

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 
        }) 
+0

работал, я думал об удалении элемента, а затем выполнение избранных, но это выглядит более аккуратным – Cybercop

+0

@ Biplov13 рад, что это сработало. Не стесняйтесь делиться некоторыми +1 :) – PostureOfLearning

+0

он может идти в обоих направлениях – Cybercop