Je construis ma première application MVC, après avoir suivi le tutoriel 'NerdDinner'. En créant une liste déroulante à partir d'une SelectList de la même manière, cependant, je rencontre un problème. Pour une raison quelconque, lorsque j'appelle la vue "Modifier", la liste déroulante ne montre pas la sélection correcte, même si les données sont définies autrement dans la base de données et la vue "Détails" affiche la valeur correcte. Tout vient juste avec la première valeur dans la liste.mvc - dropdownlist ne se remplit pas correctement dans la vue Edit
Je suis passé par le code NerdDinner morceau par morceau et ne peux pas pour la vie de moi voir une différence, mais cette application affichera correctement la liste déroulante avec la valeur actuelle lors de l'édition, et le mien ne fonctionne pas.
Quelqu'un a une suggestion d'où aller? Je peux poster des extraits de code si quelqu'un demande quelque chose de spécifique.
Mise à jour:
Dans un fieldset:
<p>
<label for="Parking">Parking Arrangement:</label>
<%= Html.DropDownList("Parking", Model.Parking)%>
<%= Html.ValidationMessage("Parking", "*") %>
</p>
L'action Edit:
//
// 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));
}
De la même manière qu'ils construisent pour l'exemple NerdDinner, j'ai créé un " ... 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);
}
}
Et le code HTML généré en cliquant sur « modifier » lorsqu'une valeur est déjà indiquée dans la vue détaillée et stockée dans le d/b:
<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>
Les champs de texte sous la même forme ont leurs valeurs correctement peuplées . C'est juste toutes les listes déroulantes qui ne le font pas!
Un grand merci pour votre attention.
J'ai parcouru le débogueur étape par étape et au moment où il a fini de rendre la page, les bonnes choses semblent sortir. Mais ... ça ne marche pas. – user101306
Pouvez-vous publier l'extrait de HtmlHelper et de l'action Edit. Et la sortie HTML aussi. –