Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change id value when using Html.DropDownListFor helper in asp.net mvc 2.0?

I have a partial view that has something like this

 <%= Html.DropDownListFor(m => m.SelectedProductName, Model.ProductList, "Select a Product") %>

Now you can create a new product and edit an existing product. Both editing and creating use the same form. The create is on the main page on load up. Edit pops up in a jQuery UI model dialog and renders a new partial view.

So as far as the page is concerned I have 2 dropdown boxes with the same "id" which is bad since they should be unique. So how do I change the id? So when the edit loads it might have a id of "editSelectedProductName"?

I tried to do this in the view model

public string SelectedProductName{ get; set; }

ViewModelConstructor()
{
  SelectedProductName = "EditSelectedProductName";
}

But it seems to not care and keeps using "SelectedProductName" as the product name

like image 566
chobo2 Avatar asked May 16 '10 01:05

chobo2


People also ask

How can get DropDownListFor selected value in MVC?

The DropDownList is generated using the Html. DropDownListFor Html Helper method. The first parameter is the Lambda expression for specifying the property that will hold the Selected Value of the DropDownList when the Form is submitted.


2 Answers

I can't find the documentation at the moment, but there is an overload for DropDownListFor that will accept an object-typed collection of attributes (HtmlAttributes is the parameter name.)

It will look something like this:

Html.DropDownListFor(model=>model.SomeProperty, new {@id="UniqueID1234"});

You can use Intellisense to find the overload that includes HtmlAttributes.

like image 58
Dave Swersky Avatar answered Oct 03 '22 18:10

Dave Swersky


You can use a hardcoded jQuery:

$('select#[id of your select box]').attr('id', '[id that you want]');
like image 34
Fernando Teles Avatar answered Oct 03 '22 18:10

Fernando Teles