2017-09-11 1 views
-1

J'ai une liste déroulante dans mon fichier html.Sélectionnez la valeur de liste déroulante de la session

Je souhaite que l'emplacement (dans la liste déroulante) soit automatiquement sélectionné s'il est présent dans l'objet session si session.

J'espère que vous comprenez ma question. Je suis nouveau à MVC. Merci

@if (Session["Location"] == null) 
{ 
       <select class="form-control" id="DeliveryLocation" name="DeliveryLocation"> 
        <option value="" selected disabled hidden>Choose Your Location</option> 
        <option value="Aundh">Aundh</option> 
        <option value="Baner">Baner</option> 
        <option value="Balewadi">Balewadi</option> 
        <option value="Pimpri">Pimpri</option> 
        <option value="Nilakh">Nilakh</option> 
        <option value="Wakad">Wakad</option> 

       </select> 
} 
else 
{ 
    // i want code here to select value from dropdown as it is in location session 
    <pre> <select class="form-control" id="DeliveryLocation" name="DeliveryLocation"> 
        <option value="" selected disabled hidden>Choose Your Location</option> 
        <option value="Aundh">Aundh</option> 
        <option value="Baner">Baner</option> 
        <option value="Balewadi">Balewadi</option> 
        <option value="Pimpri">Pimpri</option> 
        <option value="Nilakh">Nilakh</option> 
        <option value="Wakad">Wakad</option> 

       </select> 
} 
+0

Vous pouvez ajouter javascript plus bas, comme document.getElementById ('DeliveryLocation') valeur = '@Session [ "Localisation"]'. – Steve

Répondre

0

100% de travail dans votre situation.

<select class="form-control" id="DeliveryLocation" name="DeliveryLocation"> 
    <option @(Session["location"] == null ? "selected disabled hidden": "")>Choose location</option> 
    <option @((string)Session["location"] == "USA" ? "selected" : "")>USA</option> 
    <option @((string)Session["location"] == "Praga" ? "selected" : "")>Praga</option> 
    <option @((string)Session["location"] == "Paris" ? "selected" : "")>Paris</option> 
    <option @((string)Session["location"] == "China" ? "selected" : "")>China</option> 
    <option @((string)Session["location"]== "GB" ? "selected":"")>GB</option> 
</select> 
+0

Votre code appartient à la branche 'else' - le' if' vérifie s'il est nul. –

+0

bro ne fonctionne pas ... quelque chose ne va pas en dessous de la ligne: – user4584148

+0

user4584148

0

Vous devez utiliser SelectList et MVC de HTML Helpers pour construire votre menu déroulant. Il semble décourageant si vous êtes nouveau à MVC, mais il simplifie beaucoup de choses pour vous.

Dans votre méthode d'action en cours qui charge cette page:

ViewBag.DeliveryLocation = new SelectList(new[] 
{ 
    new { Text = "Aundh", Value = "Aundh" }, 
    new { Text = "Balewadi", Value = "Balewadi" }, 
    new { Text = "Pimpri", Value = "Pimpri" } 
}, "Value", "Text", Session["Location"]); 

Il y a un tas de la classe pour les surcharges SelectList. Donc, le code ci-dessus crée un SelectList avec la collection où la propriété Value sera liée à l'attribut value de l'option et Text sera affiché comme le texte de option. Le paramètre suivant est selectedValue. Dans votre cas, vous voudriez mettre à ce qui est là dans le Session["Location"]. Vous pouvez également créer une liste de SelectListItem et le mettre dans un ViewBag

Et à votre avis,

@Html.DropDownList("DeliveryLocation") 

Voilà. Donc, ce qui se passe ici, Razor génère un élément <select> avec name="DeliveryLocation". Ensuite, il recherche une propriété DeliveryLocation dans le ViewBag. Nous avons mis ceci dans notre contrôleur et les options seront fixées en conséquence. Supposons que vous ayez défini ViewBag.DeliveryLocationList dans votre contrôleur avec le SelectList.

Ensuite, vous devez dire au rasoir où chercher un SelectList. Et puisque ViewBag est un objet dynamique, vous devriez le lancer.

@Html.DropDownList("DeliveryLocation", (IEnumerable<SelectListItem>)ViewBag.DeliveryLocationList, "Choose Your Location", new { @id= "DeliveryLocation" }) 

Ici, vous avez codé en dur les emplacements. Dans les applications réelles, les valeurs d'option telles que les emplacements seront généralement extraites de la base de données. Ensuite, vous n'avez pas à faire de gros changements si vous utilisez des aides HTML.


This link from Microsft docs has some great examples for beginners