DOM Найдено 2 элемента с неуникальным идентификатором #idName - PullRequest
0 голосов
/ 20 мая 2018

Я создаю переключатели с помощью атрибута html @ Html.RadioButtonFor () из коллекции:

@foreach (var radioItem in (IEnumerable<MyMatrimony.Models.tblGenderMaster>)ViewBag.GenderId)
{
    @Html.RadioButtonFor(model => model.GenderId, radioItem.Id, new { htmlAttributes = new { @class = "form-control", @id = "radio" + Guid.NewGuid().ToString() } })
    @radioItem.Gender
}

Переключатели отображаются нормально, но в консоли Google Chrome выдает следующую ошибку:

[DOM] Found 2 elements with non-unique id #GenderId:
<input data-val="true" data-val-number="The field Gender must be a number." data-val-required="The Gender field is required." htmlattributes="{ class = form-control, id = radio95083401-4ebf-4ee4-b402-3a9018770a60 }" id="GenderId" name="GenderId" type="radio" value="1">
<input htmlattributes="{ class = form-control, id = radio603703f0-8319-49ed-b6eb-82018c9a51e0 }" id="GenderId" name="GenderId" type="radio" value="2">

Несмотря на то, что я указал уникальный идентификатор в атрибутах htmlattributes, он автоматически добавляет отдельное поле идентификатора в элемент ввода, что, по-моему, вызывает ошибку.

Пожалуйста, помогите мне решить эту ошибку.Заранее спасибо.

1 Ответ

0 голосов
/ 20 мая 2018

Исправлено путем изменения htmlAttributes html-помощника @ HTML.RadioButtonFor () на анонимный объект:

@Html.RadioButtonFor(model => model.GenderId, radioItem.Id, new { @id = "radio" + Guid.NewGuid().ToString() })

Похоже, что сам параметр принимает прямые атрибуты htmlAttributes, поэтому нам не нужно явно указывать его.

Html.RadioButtonFor (model => свойство, значение объекта, объект htmlAttributes)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...