2017-01-05 3 views
-1

Je suis en train de montrer plusieurs colonnes de ma base de données dans un dropdownlist utilisant un SelectListComment garder l'identifiant du SelectList lorsque vous utilisez plusieurs colonnes dans le champ de texte

public ActionResult Create() 
    { 
     var times = db.Show_Courses 
       .Select(x => 
         new { 
          id = x.show_course_id, 
          times = x.show_course_before + "," + x.show_course_after 
         }); 


     ViewBag.course_id = new SelectList(times, "id", "times"); 
     return View(); 
    } 

Il apparaît bien dans la vue mais la base de données la valeur de l'ID est 0

Ce fut mon code avant que je voulais montrer deux colonnes dans le champ de texte du SelectList

public ActionResult Create() 
    { 
     ViewBag.course_id = new SelectList(db.Show_Courses, "show_course_id", "show_course_time_before"); 
     return View(); 
    } 

Et voici mon code en t il voir

 <div class="form-group"> 
     @Html.LabelFor(model => model.course_show_id, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownList("course show id", (SelectList)ViewBag.course_id, new { htmlAttributes = new { @class = "form-control" } }) 
      @Html.ValidationMessageFor(model => model.course_show_id, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

Alors ma question est de savoir comment puis-je afficher 2 valeurs dans le champ de texte du SelectList sans id devenir 0?

Répondre

0

Vous pouvez générer SelectList manuellement.

Par exemple,

ViewBag.course_id = db.Show_Courses 
    .Select(x => new SelectListItem { 
     Text = x.show_course_before + "," + x.show_course_after, 
     Value = x.show_course_id.ToString() }) 
    .ToList(); 

Je personnellement aiment utiliser typer modèle. Vous pouvez en lire plus here

+0

Okey maintenant J'ai une erreur dans la vue au moment de la compilation: System.Collections.Generic.List -Type ne peut pas être converti en System.Web.Mvc.SelectList. "} –

+0

'@Html.DropDownList ("cours show id", (IList ) ViewBag.course_id, nouveau {htmlAttributes = nouveau {@class = "form-control"}}) 'Remplacer *** SelectList *** avec *** IList *** – Win

+0

Merci, mais l'identifiant devient 0 lors de l'insertion dans la base de données :( –

0

Votre code semble bien, vous devez mapper le menu déroulant en fonction valeur du modèle: show_course_id - de ce que je vois, donc s'il vous plaît mettre à jour votre menu déroulant pour:

@Html.DropDownList("show_course_id", (SelectList)ViewBag.course_id, new { htmlAttributes = new { @class = "form-control" } }) 
+0

J'ai essayé votre solution sans changer quoi que ce soit d'autre de mon code source mais toujours l'id est 0 –