Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET MVC MultiSelectList and selected values

I am trying to set the selected values for a MultiSelectList but the page does not display any values as selected. I have tried every practical way to do this and still get the same results. I am currently trying to pass a list of selected objects in via the constructor. What gets me is that when I inspect MultiSelectList object, the selectedvalues property contains the items that I have passed into it using the constructor but it still does not display.

I have noticed that many people are having the same problem but I have not seen an answer that has worked for me. I have tried iterating through the list and setting the selected property to true, I have tried creating the multiselectlist from scratch and setting each individual items selected property and I have tried using the constructor. None of these have worked. I also found an a suggestion that the MultiSelectList property could not be named the same as the control (which I tried) and that did not work. Why is it so difficult to create a dropdown list with selected values using this framework? Am I missing something?

<label for="StatesOfPractice">States of Practice:</label>
                    <br />
                    <%= Html.ListBox("StatesOfPractice", Model.StatesOfPracticeList)%>
                    <br />
                    <%= Html.ValidationMessage("StatesOfPractice")%>

Edit 1

It appears to be happening when I instantiate the MultiSelectList. If I inspect the object in the View and open the Results View I can see that "Alaska" is not selected when I know that it should be.

http://imgur.com/eTIdH.jpg

I am instantiating like this.

new MultiSelectList(List<GenericDataContract>, "Code", "Description", List<GenericDataContract>);

The GenericDataContract is simply a class with two properties, Code and Description. The first List is all of the states, the second List is my selected states.

like image 836
jamesamuir Avatar asked Mar 03 '10 19:03

jamesamuir


1 Answers

Grrrrrr, I found it. Apparently, the selected items can only be a list of strings. Once I modified my code to pass this in it selected the values.

like image 126
jamesamuir Avatar answered Oct 07 '22 18:10

jamesamuir