Ich baue meine erste MVC-Anwendung, nachdem ich das "NerdDinner" -Tutorial durchgegangen bin. Wenn ich auf dieselbe Weise eine Dropdown-Liste aus einer SelectList erstelle, stoße ich jedoch auf ein Problem.mvc - dropdownlist füllt nicht korrekt innerhalb der Bearbeitungsansicht
Aus irgendeinem Grund, wenn ich die 'Bearbeiten' Ansicht aufrufen, zeigt die Dropdown-Liste nicht die richtige Auswahl, obwohl die Daten sonst in der Datenbank eingestellt sind und die 'Details' Ansicht zeigt den richtigen Wert. Jeder kommt gerade mit dem ersten Wert in der Liste auf.
Ich habe den NerdDinner-Code Stück für Stück durchgelesen und kann für das Leben von mir keinen Unterschied sehen, aber diese Anwendung wird das Dropdown mit dem aktuellen Wert beim Bearbeiten korrekt anzeigen, und meins nicht.
Hat jemand einen Vorschlag, wo man von hier aus gehen kann? Ich kann Code-Snippets posten, wenn jemand nach etwas Bestimmtem fragt.
Update:
Innerhalb eines fieldset:
<p>
<label for="Parking">Parking Arrangement:</label>
<%= Html.DropDownList("Parking", Model.Parking)%>
<%= Html.ValidationMessage("Parking", "*") %>
</p>
Aktion bearbeiten:
//
// 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));
}
In der gleichen Art, wie sie es für die NerdDinner Beispiel konstruieren, habe ich eine ' ... 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);
}
}
Und das erzeugte HTML, wenn sie auf ‚Bearbeiten‘ klicken, wenn bereits ein Wert in die Details dargestellt sehen und in der d/b gespeichert:
<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>
Die Textfelder in der gleichen Form haben ihre Werte bevölkert korrekt . Es sind nur die Drop-Downs, die das nicht tun!
Vielen Dank für Ihre Aufmerksamkeit.
Ich habe mit dem Debugger Schritt für Schritt durch und bis zum Ende der Rendering der Seite die richtigen Dinge sieht aus wie es herauskommen wird. Aber ... einfach nicht. – user101306
Können Sie das Snippet des HtmlHelper und der Edit-Aktion posten. Und die HTML-Ausgabe auch. –