Ich versuche MVC ASP.Net zu lernen, ein Schritt in der Anleitung rät, den folgenden Code zu schreiben, um alle Elemente in der angegebenen Liste zu einem Dropdown-Menü zurückgeben, damit der Benutzer das gewünschte Element auswählen kann .@ Html.DropDownList gibt nur 1 Wert zurück
Grundlegende Erklärung Dropdown-Liste zeigt nur das aktuelle Element, das z. Wenn die URL Details ist/2 wird nur 'Pizza' in der Liste zurückgegeben und nicht alle Elemente in der 'MenuGroups' Liste. grundlegende Erklärung
Obwohl Sie den Code unten in einem Ausmaß, funktioniert es nicht die Art und Weise funktioniert ich in dem Video zu sehen bin, habe ich sogar so weit gehen auf die Website und das Kopieren seiner genauen Code, aber ich immer noch verschwunden erhalten unterschiedliche Ergebnisse und ich kann nicht herausfinden warum.
Wie Sie sehen können (Wenn Sie Zeit haben, um das Video der Demonstration um 3:49 ist zu sehen) alle Menü Gruppen zurückgegeben, nur mein Code angezeigt werden, was auch immer wird über die URL übergeben?
<dt>
Select a Menu Group
</dt>
<dd>
@Html.DropDownList("MenuGroup", new SelectList(Model.MenuGroups,
"MenuGroupId", "MenuGroupTitle"),
new { onchange = "selectMenuGroup()" })
</dd>
‚MenuGroups‘ ist eine virtuelle Liste aus dem ‚Menü‘ Modell erstellt
public virtual List<MenuGroup> MenuGroups { get; set; }
Die Steuerung ist wie folgt:
public ActionResult FullDetails(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Menu menu = db.Menus.Find(id);
if (menu == null)
{
return HttpNotFound();
}
return View(menu);
}
Entschuldigt, wenn diese zu lang oder verpasst jede Informationen, die ich vor der Veröffentlichung viele Stunden lang angeschaut habe, aber ich kann nur Leute finden, die sagen, stattdessen @ Html.DropDownListFor zu verwenden, aber ich habe bereits eine Liste und möchte daher die obige Methode verwenden (und auch ou finden t mein Fehler).
Vielen Dank im Voraus für eine Beratung.
Wenn die Dropdownliste nur 1 Element enthält, dann enthält 'Model.MenuGroups' nur ein Element - wir wissen nicht, was' db.Menus.Find (id) 'zurückgibt - Sie müssen Ihren Code debuggen –
Stellen Sie sicher, dass Der Datensatz, den Sie aus der 'db.Menu.Find (id);} abrufen, enthält mehr als 1 Eintrag für die Eigenschaft' MenuGroups'. Um die Dropdown-Liste zu schätzen. –
Wie Sie beide vorgeschlagen haben, wird die 'Liste' tatsächlich nur 1 Element übergeben (Obwohl die generierte SQL-Abfrage 3 zurückgibt, was mich mehr verwirrt!), Werde ich stattdessen in diese Richtung schauen, danke für den Tipp. – Danny