Ответ 1
Вы должны перейти на
@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })
Второй параметр @Html.EditorFor
предназначен для данных просмотра, а не для атрибутов html
Я пытаюсь установить идентификатор поля следующим образом:
@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })
но это приводит к следующему: кажется, что мой id не установлен:
<input type="text" value="334" name="item.Order" id="item_Order" class="text-box single-line">
Есть ли у кого-нибудь идея, что я делаю неправильно. Я проверил допустимые форматы для редактора и посмотрел на Google для примеров, но я не мог видеть ничего, что соответствовало бы тем, что мне нужно.
Вы должны перейти на
@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })
Второй параметр @Html.EditorFor
предназначен для данных просмотра, а не для атрибутов html
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row))
Вы пробовали создать шаблон редактора для своего x.Order
?
в шаблоне редактора:
<input type="text" id="@ViewData["id"]">
и используйте это на своей странице просмотра:
@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })
Я знаю, что этот вопрос довольно старый, но мне нужно было сделать следующее:
@Html.EditorFor(modelItem => item.EndDate,
new { htmlAttributes = new { @class = "form-control", @id = @endID } })
Вы можете предоставить ему любые классы или идентификаторы, которые вам нужны/нужны. У меня есть это ранее на моей странице, а также для создания другого идентификатора для каждого элемента:
string endID = "end-" + @item.ID;
Надеюсь, это поможет кому-то в будущем.
Я не уверен, можно ли переопределить атрибут ID при использовании строго типизированных помощников. Но вы можете использовать другой немодельный тип:
@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order)
Это будет использовать первый параметр как идентификатор, а второй - как значение по умолчанию.