Установить выбранное выпадающее значение из базы данных в бритвенном представлении MVC - PullRequest
0 голосов
/ 30 мая 2019

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

Просмотреть код

<div class="form-group">
  @Html.LabelFor(model => model[i].Customer.HomeType, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="SerivcesRegistrationInput col-md-10">
      @Html.DropDownListFor(model => model[i].Customer.HomeType, new List<SelectListItem>
 {
     new SelectListItem{ Text="House", Value = "House",@(Model[i].CustomerServices.HomeType == "House" ? Selected = true : false)  },
     new SelectListItem{ Text="Apartment", Value = "Apartment" },
     new SelectListItem{ Text="Farm", Value = "Farm" } },
      "Select your home type", htmlAttributes: new { @class = "form-control" })
 }         
    </div>
</div>

Код контроллера

 cs.HomeType = serviceDetails.HomeType;
 sp.CustomerServices = cs;
 return View("EditCustomerServices", ProviderList);

В модели есть данные, которые мне нужны, но как мне установить правильные значения в раскрывающемся списке?Я попытался использовать короткую руку, если, но это дает мне ошибку

Invalid member initializer

Можно ли добавить условие для выбранного логического значения?

1 Ответ

0 голосов
@{
    var selected = Model.CustomerServices.HomeType == "House";
}

<div class="form-group">
  @Html.LabelFor(model => model.Customer.HomeType, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="SerivcesRegistrationInput col-md-10">
      @Html.DropDownListFor(model => model.Customer.HomeType, new List<SelectListItem>
 {
     new SelectListItem{ Text="House", Value = "House", Selected = selected },
     new SelectListItem{ Text="Apartment", Value = "Apartment" },
     new SelectListItem{ Text="Farm", Value = "Farm" } },
      "Select your home type", htmlAttributes: new { @class = "form-control" })
 }         
    </div>
</div>
...