Question

J'ai ce code pour définir la valeur par défaut de ma liste de sélection:

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);
}

J'ai sur mon point de vue et cela fonctionne bien définit la valeur de pays sélectionné à 52:

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

Cependant, quand je crée un modèle d'éditeur pour cela, la valeur par défaut pour le pays n'est pas sélectionné

Alors, je change mon avis actuel à ceci:

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

Alors je crée mon modèle d'éditeur comme ceci:

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

La solution

J'ai résolu ce problème en remplaçant le code dans mon contrôleur:

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

Si vous avez de meilleures solutions, s'il vous plaît laissez-moi savoir. Je changerai réponse acceptée.

Autres conseils

Ajouter à votre contrôleur:

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

Ensuite, sur la page de vue, appelez le menu déroulant comme suit:

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

Différentes façons d'archiver ce, c'est une façon


Étape 1: Définissez la valeur que vous nee être sélectionné par défaut. ici, je l'ai passé 0 ou 2

    ViewBag.AssessmentfrezeId = IsUserHavefreeAssessment == false ? 2 : 0;

Étape 2:. Aller à la Cshtml ajouté la valeur sélectionnée comme ci-dessous

 @Html.DropDownListFor(m => m.TestID, new SelectList(Model.Slots, "Id", "TimeSlot", @ViewBag.AssessmentfrezeId), "--Select--", new { @class = "form-control" })
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top