Drop Down listes dans ASP.NET MVC Confondez-moi. J'ai une classe modèle. La classe modèle a une chaîne appelée SelectedValue. Cette chaîne représente la valeur précédemment sélectionnée. J'ai une collection d'articles que j'ai tirés de la base de données. Chaque élément de la collection a une carte d'identité et une valeur de nom. Mon problème est que je ne sais pas quelle est la manière recommandée d'obtenir cette information dans l'interface utilisateur. P>
Je ne suis pas sûr que je devais utiliser le sac de vie ou le modèle. Une fois que la valeur est là cependant, je ne suis même pas sûre de la meilleure façon de remplir l'interface utilisateur. J'ai vu des aides et des personnes HTML utilisant la syntaxe de rasoir. Je suis très confus. Que recommandent les gens? P>
merci p>
4 Réponses :
La façon dont je le fais, c'est faire la liste déroulante une partie de mon viewModel .... dire que c'est des produits .... donc dans mon point de vue, j'ai un alors quand le Voir les charges et je peuplement du modèle pour revenir à la vue dans le contrôleur, je fais quelque chose comme ceci: p> à mon avis, j'aurais: P > @Html.DropDownListFor(model => model.ProductId, Model.Products, "Please Select")
return View(model)
C'est comme ça que je le fais, disons que vous avez 2 modèles Team.cs strong> p> puis dans votre playercontroller:
et enfin votre vue créée pour le joueur ressemblerait à ceci: p> équipe et joueur CODE>:
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Player</legend>
<div class="editor-label">
@Html.LabelFor(model => model.TeamId, "Pick Your Team")
</div>
<div class="editor-field">
@Html.DropDownList("TeamId", String.Empty)
@Html.ValidationMessageFor(model => model.TeamId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Si vous utilisez vb.net - MVC4- RAZOR Cette réponse est presque la même chose que Frigik (mercifrigik)
dans votre modèle Créez deux champs, un champ qui détiendra la sélection de SELECTEMEM (ici c'est TagType de chaîne) et la seconde est la liste déroulante (tagtypelist) p>
@Html.DropDownListFor(Function(x) x.TagType, Model.TagTypeList, "", New With {.id = "ddlTagType",.class = "dropDown", .style = "width: 140px"})
En plus des méthodes ci-dessus, vous pouvez également utiliser Cette forte> approche pour utiliser une clé multi-étrangère dans une table de recherche. Il est très clair et efficace autant que je l'ai vu. P>
@ Html.dropdownlist ("Managerid", (sélectionneuse) Viewbag.Managers, String.empty)
ou en utilisant des expressions de modèle et de lambda @ html.dropdownlistor (x => managers, model.managers)
Comment le "gestionnaire" correct est-il sélectionné? Je ne comprends pas