简体   繁体   中英

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") %>

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");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM