Как предотвратить множественный выбор одного и того же значения в @ Html.DropDownListFor в mvc - PullRequest
0 голосов
/ 22 марта 2019

Я хочу запретить пользователям выбирать уже выбранные значения в том же выпадающем списке.Мой экран выглядит следующим образом:

enter image description here

При каждом нажатии кнопки «Добавить» тип службы и расположение службы добавляются в частичное представление.Для этого раскрывающегося списка я использую @Html.DropdownListFor для привязки значений из базы данных.

<div class="row mt-3" id="servicelocation">
    @using (Html.BeginCollectionItem("ServiceTypeCollection"))
    {
    <div class="col-lg-3 col-sm-6 col-12">
        <label> Service Type</label>
        @Html.DropDownListFor(x => Model.Id, null, new { @class = "md-form droplist service-type" })
        @Html.HiddenFor(x => Model.Id)
    </div>

}

И в [HttpGet]

 public ActionResult Register(string guid)
    {
          var db = new VendorManagementContext();
          var types = db.ServiceTypes.Select(x =>
                     new SelectListItem()
                     {
                         Text = x.Name.ToString(),
                         Value = x.Id.ToString()
                     }).ToList();

            model.serviceTypes=types;
    }

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

Отредактировано

Мы вызываем частичный метод, подобный этому

[HttpGet]
        public ActionResult GetPartial()
        {
            try
            {
                var model = new ServiceTypePartial();
                ViewBag.Id = Utility.ServiceTypes();
                ViewBag.ZipCodeId = Utility.ZipCodes();
                return PartialView("_ServiceTypePartialView", model);
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }

и видим его как

<div id="AddServices">
    @Html.CollectionEditorFor(m => m.ServiceTypeCollection, "Editors/_ServiceTypePartialView", "/Account/GetPartial",
       "Add service location", new { @class = "btn btn-default" })
 </div>
...