Я создал собственный помощник для управления своими радио-кнопками. Это позволяет мне нажимать на ярлык, чтобы выбрать соответствующий переключатель. Это работает, но я обнаружил ситуацию, когда это больше не работает.
Вот сценарий : при первой загрузке диалогового окна jQuery UI я могу щелкнуть ярлык, чтобы выбрать соответствующий переключатель. Я должен сказать, что мои радио-кнопки загружаются в форму в диалоге jQuery.
Проблема возникла, если я закрою, а затем снова открою диалоговое окно jQuery, тогда мои метки больше не будут связаны с переключателями (но все работает довольно хорошо, кроме этой точки).

Вот код моего помощника:
public static MvcHtmlString RadioButtonFor2<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object value, object labelText)
{
object currentValue = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).Model;
string nameX = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).DisplayName;
string uniqueId = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).DisplayName + "_" + value;
TagBuilder htmlRadio = new TagBuilder("input");
htmlRadio.MergeAttribute("type", "radio");
htmlRadio.MergeAttribute("id", uniqueId);
htmlRadio.MergeAttribute("name", nameX);
htmlRadio.MergeAttribute("value", (string)value);
if (currentValue != null && value.ToString() == currentValue.ToString()) htmlRadio.MergeAttribute("checked", "checked");
TagBuilder htmlLabel = new TagBuilder("label");
htmlLabel.MergeAttribute("for", uniqueId);
htmlLabel.SetInnerText((string)labelText);
return MvcHtmlString.Create(htmlRadio.ToString(TagRenderMode.SelfClosing) + htmlLabel.ToString());
}
Этот код создает HTML-код, подобный следующему:
<input name="ADR" id="ADR_Yes" type="radio" value="Yes"/>
<label for="ADR_Yes">Oui</label>
Как видите, метка правильно связана с вводом.
У кого-нибудь есть идеи, почему он работает только при первой загрузке диода jQuery UI?
Я немного растерялся.
Спасибо.