2016-06-13 4 views
1

J'utilise entity framework et jquery chosen plugin pour obtenir des valeurs de listes déroulantes multisélectionnées pour la propriété Skills. J'ai eu du mal à faire fonctionner le plugin choisi, et je l'ai compris, mais maintenant je suis confronté à un autre problème de transmission de ces valeurs multisélectées (ex: Java, C#, javascript) dans le contrôleur et sauvegarde dans ma table Employee .Comment enregistrer des valeurs de listes déroulantes multisélectionnées dans une table de base de données dans Asp.net MVC

public IEnumerable<string> Skills { get; set; } 

Le code ci-dessus est actuellement en tête pour enregistrer plusieurs valeurs, mais je ne sais pas comment l'utiliser correctement. Penser à plusieurs façons de le faire, mais j'ai vraiment besoin de conseils.

J'ai un modèle qui ressemble à:

public class Employee 
{   
    public string Name { get; set; } 
    public string Skills { get; set; } 
} 

et mon contrôleur:

public ActionResult Create([Bind(Include = "Name,Skills")] Employee employee) 
    { 

     if (ModelState.IsValid) 
     {    
      db.Employees.Add(employee); 
      db.SaveChanges(); 
      return View("Success"); 
     } 

     return View(employee); 
    } 

Vue:

@using (Html.BeginForm()) 
{ 
    @Html.LabelFor(model => model.Name) 
    @Html.EditorFor(model => model.Name) 
    @Html.ValidationMessageFor(model => model.Name) 

    @Html.LabelFor(model => model.Skills) 
    @Html.ListBoxFor(model => model.Skills, ViewBag.skillList as MultiSelectList, 
    new { @class = "chzn-select", id="skills", data_placeholder = "Choose Skills..." }) 
    @Html.ValidationMessageFor(model => model.Skills) 

    <input type="submit" value="Create" class="btn btn-default" /> 
} 

Une autre approche que je pense est de créer une table de compétence cette table Employee peut avoir une propriété de navigation. Un employé peut avoir n'importe quel nombre de compétences, de sorte que la propriété de navigation Compétence est une collection. Mais honnêtement, ont peu de connaissances à ce sujet et ont besoin de conseils pour cela aussi. Par exemple:

public class Employee 
{   
    public string Name { get; set; } 
    public int SkillID { get; set; } 

    public virtual ICollection<Skill> Skills { get; set; } 
} 

Si l'une de ces approches ne font pas de sens, je vous en serais reconnaissant si vous pouvez me dire pourquoi et comment je peux l'utiliser correctement. Merci!

+0

A '