Я создаю свое первое приложение MVC, выполнив учебное пособие «NerdDinner». Однако при создании выпадающего списка из списка SelectList у меня возникает проблема.
По какой-то причине, когда я открываю представление «Редактировать», раскрывающийся список не отображает правильный выбор, даже если в базе данных установлены иные данные, а представление «Детали» показывает правильное значение. Каждый из них просто предлагает первое значение в списке.
Я проходил фрагмент кода NerdDinner по кусочкам и не вижу разницы, хотя это приложение правильно отображает выпадающее меню с текущим значением при редактировании, а мое - нет.
У кого-нибудь есть предложение, куда идти дальше? Я могу опубликовать фрагменты кода, если кто-то попросит что-то конкретное.
Обновление:
В наборе полей:
<p>
<label for="Parking">Parking Arrangement:</label>
<%= Html.DropDownList("Parking", Model.Parking)%>
<%= Html.ValidationMessage("Parking", "*") %>
</p>
Действие Изменить:
//
// GET: /Buyer/Edit/2
public ActionResult Edit(int id)
{
Buyer_Profile buyer_profile = buyerRepository.GetBuyerProfileByID(id);
if (buyer_profile == null)
return View("NotFound");
else if (!buyer_profile.IsOwnedBy(User.Identity.Name, id))
return RedirectToAction("Index", "Home");
else
return View(new BuyerFormViewModel(buyer_profile));
}
Точно так же, как они конструируют его для примера NerdDinner, я создал '... FormViewModel':
public class BuyerFormViewModel
{
// Properties
public Buyer_Profile Buyer_Profile { get; private set; }
public SelectList Parking { get; private set; }
// Constructor
public BuyerFormViewModel(Buyer_Profile buyer_profile)
{
Buyer_Profile = buyer_profile;
Parking = new SelectList(BuyerProfileOptions.Parking, Buyer_Profile.Parking);
}
}
И сгенерированный HTML при нажатии на «редактировать», когда значение уже отображается в подробном представлении и сохраняется в д / б:
<p>
<label for="Parking">Parking Arrangement:</label>
<select id="Parking" name="Parking"><option>No Preference</option>
<option>On Street</option>
<option>Assigned Street</option>
<option>Open Garage</option>
<option>Covered Garage</option>
</select>
</p>
Текстовые поля в одной форме имеют правильные значения. Это просто выпадающие списки, которых нет!
Большое спасибо за ваше внимание.