Кажется, что вспомогательный помощник ASP.NET MVC2 по умолчанию генерирует повторяющиеся HTML-идентификаторы при использовании такого кода (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) %>
Созданный HTML:
<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" />
Это ясно показывает проблему. Поэтому я должен злоупотреблять Помощником или чем-то еще.
Я могу вручную указать атрибут id
как html, но тогда я не могу гарантировать, что он будет уникальным.
Итак, вопрос в том, как убедиться, что идентификаторы, сгенерированные помощником RadioButton, уникальны для каждого значения, а все еще сохраняют соглашения для генерации этих идентификаторов (поэтому вложенные модели (желательно не генерировать идентификаторы вручную).