How to get multiselected Dropdownlist values in asp.net mvc

匿名 (未验证) 提交于 2019-12-03 01:08:02

问题:

I have a problem to get multi select dropdown list values.can anyone suggest me how to get select multiple dropdownlist values as well as how to get them in controller.

My code is like this:-

Model

public string BusinessUnitSiteSafetyRepresentative { get; set; }

Controller

[HttpPost] public ActionResult AddClientBusinessUnitSite(LocalAddClientBusinessUnitSite local) {  var query = from o in entitydb.systemusersorganizations.toList()              from c in entitydb.contacts.toList()              where o.orgId == clientId               select new SelectListItem              {                 Text = c. Name;                 Value = c.OrgId.toString()                               }  ViewBag.list1 = query.ToList(); }

Well, I can get if single value is selected & can save to DB.But how to select multiple values as well as to get them in Controller so as to save them.

Note: - I am retrieving the dropdownlist values from DB as shown above.

View

@Html.ListBoxFor(x => Model.BusinessUnitSiteSafetyRepresentative,new   MultiSelectList((IEnumerable)@Viewbag.list1) 

I have gone through some examples but none of them helped me.Please help me.

回答1:

What I suggest is that your model needs to have a one to many relationship with the items in your multi select list.

An example is a Blog with multiple tags:

Your blog model may look like:

public class Blog {     public Blog()     {         Tags = new List();     }      public string BlogTitle{ get; set; }     public string Body{ get; set; }     public virtual ICollection Tags{ get; set; } }

And your tag model like so:

    public int TagID{ get; set; }     public string TagName{ get; set; }     public virtual ICollection Blogs{ get; set; }

Now I recommend you use a view model:

public class BlogViewModel {     public Blog blog{ get; set; }     public List SelectedTags { get; set; }      public virtual List Tags{ get; set; }      public BlogViewModel()     {      }      public BlogViewModel(Blog _blog, List _Tags)     {         blog = _blog;         Tags = _Tags;         SelectedTags = new List();     } }

And finally in your View (which inherits from the ViewModel);

@Html.ListBoxFor(m => m.SelectedTags, new MultiSelectList(Model.Tags, "TagID", "Tag") , null)

The JQuery Chosen plugin is excellent for this http://harvesthq.github.io/chosen/. You can use it by:

@Html.ListBoxFor(m => m.SelectedTags, new MultiSelectList(Model.Tags, "TagID", "Tag")         
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!