Il semble que la valeur par défaut ASP.NET aide MVC2 Html génère double ID HTML lors de l'utilisation du code comme celui-ci (EditorTemplates/UserType.ascx):Bouton radio génère double
<%@ 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) %>
Le code HTML il produit est:
<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" />
Cela montre clairement un problème. Donc je dois abuser de l'assistant ou de quelque chose.
Je peux spécifier manuellement l'attribut id
en tant qu'attribut html, mais je ne peux pas garantir qu'il sera unique.
La question est de savoir comment assurez-vous que les ID générés par aide RadioButton sont unique pour chaque valeur et conservent encore les conventions pour générer ces ID (si les modèles imbriqués sont respectés? (De préférence ne pas générer ID manuellement
Peut-être que vous pouvez également suggérer comment générer des ID prenant en compte le nom actuel du modèle afin que les ID peuvent être correctement générés et avez-vous des identifiants comme: 'UserType_Primary',' Company_User_UserType_Primary' et ainsi de suite? –
@Dmitriy: Je viens de mettre à jour ma réponse. ViewData.TemplateInfo.HtmlFieldPrefix devrait vous aider. – PanJanek
Merci beaucoup. Cela devrait faire le travail pour moi. –