3

Ich habe diesen Code den Standardwert meiner Auswahlliste zu setzen:Einstellung Standardwert von Select innerhalb eines Editors Vorlage ausgewählt

public ActionResult Register() 
{ 
    IList<Country> countryList = _countryRepository.GetAllCountry(); 

    var registerViewModel = new RegisterViewModel 
    { 
     CountryId = 52, 
     CountryList = new SelectList(countryList, "CountryId", "CountryName", "Select Country") 
    }; 

    return View(registerViewModel); 
} 

Ich habe dieses auf meiner Meinung nach und das funktioniert gut setzt das ausgewählte Land Wert 52:

<%: Html.DropDownListFor(model => model.CountryId, Model.CountryList ,"Select Country") %> 

Allerdings, wenn ich einen Editor-Vorlage für diese erstellen, wird der Standardwert für Land nicht ausgewählt

Also, ich meine aktuelle Ansicht auf das ändern:

<%: Html.EditorFor(model => model.CountryId,new { countries = Model.CountryList}) %> 

Dann erstelle ich meine Lektorin Vorlage wie folgt aus:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Int64?>" %> 
<%= Html.DropDownList(
     String.Empty /* */, 
     (SelectList)ViewData["countries"], 
     "Select Country" 
    ) 
%> 

Antwort

7

Ich habe dieses Problem gelöst, indem Sie den Code in meinem Controller zu ersetzen:

CountryList = new SelectList(countryList, "CountryId", "CountryName",52 /*Default Country Id*/) 

Wenn Sie bessere Lösungen haben, bitte Gib mir Bescheid. Ich werde die angenommene Antwort ändern.

1

Fügen Sie diese auf Ihrem Controller:

ViewData["CountryList"] = new SelectList(_countryRepository.GetAllCountry(), 52); 

Dann wird auf der Seite anzeigen, die Drop-Down-Aufruf wie folgt:

@Html.DropDownList("Countries", ViewData["CountryList"] as SelectList) 
Verwandte Themen