Ich habe stundenlang versucht, es zum Laufen zu bringen, aber jetzt muss ich fragen ..
Wie eingelesen
/942262/add-empty-value-to-a-dropdown-list-in-asp-net-mvc und /3780614/mvc-clear-default-selected-value-of-selectlist
Ich möchte Dropdown-Listen in meiner ASP.NET MVC Razor-Webanwendung mit Entity Framework 5 einen leeren Bereich hinzufügen, um den Benutzer zur Eingabe zu zwingen.
Ich habe die Informationen befolgt, aber in der Ansicht ist Folgendes passiert: http://i.stack.imgur.com/EXSgT.png
Wie Sie sehen, ist ein Leerzeichen vorhanden, das jedoch nicht standardmäßig ausgewählt ist. Stattdessen wird mein "Testprojekt" als erster Wert von meinem Controller markiert. Nicht der leere Raum. Wo bin ich gescheitert?
Danke vielmals.
Mein Modell sieht so aus:
[...]
using System.Web.Mvc;
public class UploadTranferContainer
{
[DisplayName("Project")]
public int ProjectID { get; set; }
public SelectList Projects { get; set; }
}
Mein Controller füllt die Daten wie folgt aus:
UploadTranferContainer container = new UploadTranferContainer();
container.Projects = new SelectList(db.Projects.AsEnumerable(), "ProjectID", "ProjectName");
Und das view packt meinen Container wie folgt aus:
<div class="editor-label metadataLabel">
@Html.LabelFor(x => x.ProjectID)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.ProjectID, Model.Projects, string.Empty)
</div>
Der ausgewählte Wert der Dropdown-Liste ist der Wert (falls gefunden) von Model.ProjectID
.
Wenn dies als erste (leere) Option der Auswahl angezeigt werden soll, stellen Sie sicher, dass der Wert von ProjectID
nicht in den Auswahllistenelementen Model.Projects
enthalten ist.
sie können den folgenden Ansatz für Dropdown mit leeren Werten verwenden
@Html.DropDownListFor(x => x.ProjectID, new SelectList(Model.Projects, "ProjectID", "ProjectName"), " ")
Ermöglicht das Erstellen eines leeren Listenelements
var area = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } };
oder
ViewBag.SubAreaList = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } };
rasierer
@Html.DropDownList("DdlSubAreas", new SelectList(ViewBag.SubAreaList, "AreaID", "AreaName"), new { size = "10" });
tbl_Area kann eine Klasse oder ein Datenmodell sein
class tbl_Area{
public int AreaID {get;set;}
public string AreaName {get;set;}
}