Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Radio Button generates duplicate HTML id-s

It seems that the default ASP.NET MVC2 Html helper generates duplicate HTML IDs when using code like this (EditorTemplates/UserType.ascx):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<UserType>" %>  <%: Html.RadioButton("", UserType.Primary, Model == UserType.Primary) %> <%: Html.RadioButton("", UserType.Standard, Model == UserType.Standard) %> <%: Html.RadioButton("", UserType.ReadOnly, Model == UserType.ReadOnly) %> 

The HTML it produces is:

<input checked="checked" id="UserType" name="UserType" type="radio" value="Primary" />  <input id="UserType" name="UserType" type="radio" value="Standard" />  <input id="UserType" name="UserType" type="radio" value="ReadOnly" />  

That clearly shows a problem. So I must be misusing the Helper or something.

I can manually specify the id as html attribute but then I cannot guarantee it will be unique.

So the question is how to make sure that the IDs generated by RadioButton helper are unique for each value and still preserve the conventions for generating those IDs (so nested models are respected? (Preferably not generating IDs manually.)

like image 500
Dmytrii Nagirniak Avatar asked May 10 '10 08:05

Dmytrii Nagirniak


1 Answers

In addition to PanJanek's answer:
If you don't really need the elements to have an id, you can also specify id="" in the htmlAttributes (i.e. new { id="" }) parameter of helpers. This will result in the id attribute being left out completely in the generated html.

source: https://stackoverflow.com/a/2398670/210336

like image 53
Matthijs Wessels Avatar answered Oct 03 '22 02:10

Matthijs Wessels