0

編集中の現状

ユーザーがハードウェア (モジュール) の所有権を変更する (新しい顧客に提供する) ことができる編集フォームがあります。私がやったことは、利用可能なすべての顧客を集めた機能を通してです。このリストはドロップダウンで表示され、ハードウェアの現在の所有者 (顧客) も含まれています。

が達成したいのはドロップダウンリストです。現在の所有者(顧客の1人でもある)を削除したいだけです。

コードビューはこちら

ビューモデル

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 に答える