Während eine Suche nach „Standardwert von Dropdown“ Ergebnissen führen, ist dies nicht eine doppelte Frage, da das spezifische Problem nicht in den Beispielen und Antworten aufgelistet ich gesucht.Standardwert von Dropdownlist in einem Html.BeginForm Block
Hier ist die wichtigste Frage zuerst, gefolgt von Hintergrund und Details unterstützen:
Wenn ich ein Dropdownlist in einem Html.BeginForm Block platzieren, wie kann ich die Standardwerte Dropdownlist sein ein Element habe andere als der erste Punkt in der Liste?
Was ich bisher getan haben:
- SO, Microsoft Virtual Academy und eine allgemeine Internet-Suche verschiedene Suchbegriffe verwenden, ohne wirksame Antworten, die dieses spezielle Problem zu lösen.
- Blick auf die Überladungen von
Html.DropDownList
auf MSDN. Der ParameteroptionLabel
fügt ein Element ganz oben in der Liste ein, z. B. "Ein Element auswählen", was nicht erwünscht ist. - jQuery, die funktioniert funktioniert wie beabsichtigt, aber ich hoffe wirklich, es gibt eine viel einfacher Weg, der jQuery nicht beteiligt ist.
Meine Arbeitstheorie: Die Methode, die ich gelernt (und unten) erlaubt keine Standardwerte, und es ist nicht ein Fall von nicht eine bestimmte Überlastung von Html.DropDownList
zu kennen.
Hintergrund Info:
Im Prozess MVC des Lernens 5 und das Sammeln von Anweisungen von Tutorials und SO Antworten, habe ich gelernt, diesen Stil ein Dropdownlist zu erstellen, die innerhalb eines Html.BeginForm()
Block in der Ansicht platziert wird. Es funktioniert, wenn ich möchte, dass der Standardwert der erste Eintrag in der Liste ist, oder wenn ich einen Eintrag hinzufügen möchte, der oben heißt "Wähle einen Eintrag".
Es gibt jedoch Zeiten, in denen es sinnvoll ist, dass der Standardwert anders als der erste in der Liste ist.
In der Steuerung werden die Standardwerte des Parameters Index(string campus = "MRA", string fy = "FY16")
festgelegt, und die Abfrage gibt das korrekte Ergebnis zurück, aber DropDownLists werden nicht entsprechend festgelegt, wenn die Seite das erste Mal geladen wird.
-Controller
public ActionResult Index(string campus = "MRA", string fy = "FY16")
{
/* The ViewBags feed DropDownLists used to filter the query */
ViewBag.CampusList = new List<string> { "CRA","DRA","MRA","PRA"};
ViewBag.FyList = new List<string> {"FY15","FY16" };
IEnumerable<AssociatedW3SuspensionOrProbation> query =
db.AssociatedW3SuspensionOrProbation
.Where(m=>m.Campus==campus).Where(m=>m.FY==fy)
.OrderBy(m=>m.StudentName).ThenBy(m=>m.LatestEntryDate);
return View(query.ToList());
}
Ansicht Die Dropdown-Listen korrekt funktionieren: wenn das Formular abgeschickt wird, werden die Abfrageergebnisse durch die ausgewählten Drop-Down-Werte ausgewählt und die Dropdown-Listen laden mit den ausgewählten Werten.
@using (Html.BeginForm())
{
<div class="panel panel-default">
<div class="panel-body">
<p>
<strong>Campus</strong>: @Html.DropDownList("campus",
new SelectList(ViewBag.CampusList)) ||
<strong>FY</strong>: @Html.DropDownList("fy",
new SelectList(ViewBag.FyList))
</p>
<div><input type="submit" value="Search" /></div>
</div>
</div>
}
Gibt es eine einfache Antwort auf dieses Problem oder erfordert dies einen völlig anderen Ansatz?
Haben Sie die Überlastung von 'neue Select versucht()' die nimmt den ausgewählten Wert als zweiten Parameter? 'neue SelectList (ViewBag.CampusList," MRA ")' –
Warum der Downvote? War die Frage schlecht konstruiert? Habe ich die Frage nicht ausreichend erläutert? Ich bin offen für Kritik, aber es ist nicht konstruktiv oder hilfreich, einfach einen Downvote ohne Erklärung zu bekommen. –