views:

48

answers:

2

In my controller I generated a SelectList that I pass to the dropdown helper:

  <%= Html.DropDownList("abc123", Model.SomeList) %>

I look at the querystring for a value, which is a ID.

I then loop through all the items in the SelectList and if it is equal to the ID, I do:

item.Selected = true;

The controller action then passes this SelectList to the view and then to the Html helper.

In debug mode I can see the value does get set to true, but the html renders without selecting the item.

What can the issue be?

+1  A: 

I don't know what you are doing wrong as you've shown 0 code but this definitely works:

public ActionResult Index(int? id)
{
    var model = new SelectList(new[]
    {
        new { Id = 1, Name = "item 1" },
        new { Id = 2, Name = "item 2" },
    }, "Id", "Name", id);
    return View(model);
}

and in your view:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SelectList>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <%= Html.DropDownList("abc123", Model) %>

</asp:Content>

Now if you navigate to /home/index/1 the first item is selected, if you navigate to /home/index/2 the second item item selected.

Also if you are using ASP.NET MVC 2.0 I would recommend you the strongly typed DropDownListFor helper instead of DropDownList.

Darin Dimitrov
thanks it works when you pass the selectedValue in the constructor of selectList.
Blankman