9
votes

Remplir et sélectionner une valeur de liste déroulante dans ASP.NET MVC 4

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.

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?

merci


3 commentaires

@ 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


4 Réponses :


8
votes

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 xxx pré>

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> xxx pré>

à mon avis, j'aurais: P >

@Html.DropDownListFor(model => model.ProductId, Model.Products, "Please Select")



return View(model)


0 commentaires

10
votes

C'est comme ça que je le fais, disons que vous avez 2 modèles équipe et joueur CODE>:

joueur.cs strong> p> xxx Pré>

Team.cs strong> p> xxx pré>

puis dans votre playercontroller: NOTE: L'équipe doit exister pour créer un lecteur fort> p> xxx pré>

et enfin votre vue créée pour le joueur ressemblerait à ceci: p>

@{
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")
}


0 commentaires

0
votes

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>

modèle de modèle- tag.vb h2> xxx pré>

en classe de communutité - commonUtilitility.vb h2> xxx pré>

dans le Afficher H2>
@Html.DropDownListFor(Function(x) x.TagType, Model.TagTypeList, "", New With {.id = "ddlTagType",.class = "dropDown", .style = "width: 140px"})


0 commentaires

0
votes

En plus des méthodes ci-dessus, vous pouvez également utiliser Cette 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.


0 commentaires