Ich benutze .NET 3.5, MVC.ASP.NET - Alias-Dropdownliste Namen auf Back-End
Ich möchte eine Reihe von String-Aliase verwenden, um Datenbankwerte darzustellen. Wenn ein Benutzer eine Option aus einem Dropdown auswählt, setzt er den Wert tatsächlich auf 0, 1, 2 usw. in der Tabelle anstatt auf den Text, der in der Dropdown-Liste selbst angezeigt wird.
z.B. Ich tue:
IdName[] Thing = new[] {
new IdName { Id = 0, Name = "No Selection" },
new IdName { Id = 1, Name = "Thing A9" },
new IdName { Id = 2, Name = "Thing C12" },
new IdName { Id = 3, Name = "Thing F4" }
};
MyDropDownList = new SelectList(Things, "Id", "Name",0);
und in der Ansicht:
<%= Html.DropDownList("MyDropDownList")%>
Nun, dies funktioniert gut. Was ich nicht zur Arbeit bringen kann, ist, den Wert des Feldes in einer "Details" -Ansicht anzuzeigen und "Thing C12" als Text anstelle von "2" zu zeigen.
Ist dies auch der beste Weg? Ich möchte nicht die tatsächliche Zeichenfolge in der Datenbank verwenden, wenn ich den Text eines Eintrags ändere (z. B. den Namen von "Thing F4" in "Thing F5" ändern). Ich bin völlig offen für einige andere Ideen.
Danke!
Sie sagten: "Thing C12" als Text anstelle von "2" wo zeigt? –
Was ich meine ist, wenn ein Benutzer "Thing C12" aus der Dropdown-Liste wählt, speichert es tatsächlich den Wert in der Datenbank als 2 (wegen der Art, wie ich SelectList()) – user101306
ok Ich bekomme den Punkt –