How to make a select list item selected in asp.net mvc?

I have the following code but it never selects the value I want.

     List<SelectListItem> list = new List<SelectListItem>();
     SelectListItem one = new SelectListItem() { Text = "MyTest", Value = "MyTest"};
     SelectListItem two= new SelectListItem() { Text = "Test2", Value = "Test2" };

     if (id == "MyTest")
     {
         one .Selected = true;
     }
     else
     {
         two.Selected = true;
     }
     list.Add(one);
     list.Add(two);
     ViewData["DDL"] = new SelectList(list, "value", "text");

So I am not sure what I am doing wrong

in my view I have

<%= Html.DropDownList("DDL") %>

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You should use:

ViewData["DDL"] = new SelectList(list, "value", "text", id == "MyTest" ? "MyTest" : "Test2");

You should define selected value in SelectList constructor.

EDIT

Answer to question:

You don’t have to provide List to SelectList constructor. It can be collection of any object. You just have to provide key, value propery and selected value. Your code could also look like:

var selectItems = new Dictionary<string, string> {{"MyTest", "MyTest"}, {"Test2", "Test2"}};
ViewData["DDL"] = new SelectList(selectItems, "Key", "Value", id == "MyTest" ? "MyTest" : "Test2");


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x