Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DropDownListFor Not Selecting Value

Tags:

asp.net-mvc

I'm using the DropDownListFor helper method inside of an edit page and I'm not having any luck getting it to select the value that I specify. I noticed a similar question on Stackoverflow. The suggested workaround was to, "populate your SelectList in the view code". The problem is that I've already tried this and it's still not working.

<%= Html.DropDownListFor(model => model.States, new SelectList(Model.States.OrderBy(s => s.StateAbbr), "StateAbbr", "StateName", Model.AddressStateAbbr), "-- Select State --")%>

I have set a breakpoint and have verified the existence (and validity) of model.AddressStateAbbr. I'm just not sure what I'm missing.

like image 890
senfo Avatar asked Feb 17 '10 03:02

senfo


1 Answers

After researching for an hour, I found the problem that is causing the selected to not get set to DropDownListFor. The reason is you are using ViewBag's name the same as the model's property.

Example

public  class employee_insignia {     public int id{get;set;}    public string name{get;set;}    public int insignia{get;set;}//This property will store insignia id }  // If your ViewBag's name same as your property name    ViewBag.Insignia = new SelectList(db.MtInsignia.AsEnumerable(), "id", "description", 1); 

View

 @Html.DropDownListFor(model => model.insignia, (SelectList)ViewBag.Insignia, "Please select value") 

The selected option will not set to dropdownlist, BUT When you change ViewBag's name to different name the selected option will show correct.

Example

ViewBag.InsigniaList = new SelectList(db.MtInsignia.AsEnumerable(), "id", "description", 1); 

View

 @Html.DropDownListFor(model => model.insignia, (SelectList)ViewBag.InsigniaList , "Please select value") 
like image 165
wut-excel Avatar answered Oct 07 '22 21:10

wut-excel