it-swarm.com.de

ASP.NET MVC Razor: Fügen Sie einer DropDownList einen leeren Wert hinzu

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>            
8
Mexx_

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.

4
Jay

sie können den folgenden Ansatz für Dropdown mit leeren Werten verwenden

@Html.DropDownListFor(x => x.ProjectID, new SelectList(Model.Projects, "ProjectID", "ProjectName"), " ")
3
Rajshee IFour

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;}
}
0
Arun Prasad E S