Maison >développement back-end >C++ >Comment obtenir la valeur sélectionnée à partir d'une DropDownList dans un contrôleur MVC ?
Obtenir la valeur sélectionnée de la liste déroulante dans le contrôleur MVC
Dans les applications MVC, l'attribution de valeurs aux listes déroulantes de la base de données est un scénario très courant. Cependant, lorsque vous soumettez le formulaire, vous devez accéder à la valeur sélectionnée dans le contrôleur. Cet article propose deux méthodes pour y parvenir :
Méthode 1 : Utiliser Request ou FormCollection
La première méthode lit la valeur sélectionnée directement à partir de la requête. En utilisant Request.Form vous pouvez spécifier la clé de la liste déroulante (ddlVendor dans ce cas) pour récupérer la valeur publiée :
<code class="language-csharp">string strDDLValue = Request.Form["ddlVendor"].ToString();</code>
Vous pouvez également utiliser FormCollection :
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV, FormCollection form) { string strDDLValue = form["ddlVendor"].ToString(); return View(MV); }</code>
Méthode 2 : Utiliser le modèle
Pour la méthode de liaison de modèle, ajoutez une propriété à votre modèle :
<code class="language-csharp">public class MobileViewModel { public List<tbinsertmobile> MobileList; public SelectList Vendor { get; set; } public string SelectedVendor {get;set;} }</code>
À votre avis, liez la liste déroulante au modèle à l'aide de @Html.DropDownListFor et spécifiez la propriété SelectedVendor :
<code class="language-csharp">@Html.DropDownListFor(m=>m.SelectedVendor , Model.Vendor, "Select Manufacurer")</code>
Enfin, dans votre contrôleur, la valeur sélectionnée est accessible via la propriété SelectedVendor :
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string SelectedValue = MV.SelectedVendor; return View(MV); }</code>
Mise à jour : Publier le texte sélectionné
Pour capturer à la fois la valeur sélectionnée et son texte correspondant, ajoutez un champ masqué à votre vue :
<code class="language-csharp">public class MobileViewModel { public List<tbinsertmobile> MobileList; public SelectList Vendor { get; set; } public string SelectVendor {get;set;} public string SelectedvendorText { get; set; } }</code>
À votre avis, utilisez JavaScript pour mettre à jour le texte de l'élément sélectionné dans le champ masqué :
<code class="language-javascript">$(function(){ $("#SelectedVendor").on("change", function() { $("#SelectedvendorText").val($(this).text()); }); }); @Html.DropDownListFor(m=>m.SelectedVendor , Model.Vendor, "Select Manufacurer") @Html.HiddenFor(m=>m.SelectedvendorText)</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!