Подтвердить что ты не робот

Как установить идентификатор с помощью Html.EditorFor с MVC3

Я пытаюсь установить идентификатор поля следующим образом:

@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 для примеров, но я не мог видеть ничего, что соответствовало бы тем, что мне нужно.

4b9b3361

Ответ 1

Вы должны перейти на

@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })

Второй параметр @Html.EditorFor предназначен для данных просмотра, а не для атрибутов html

Ответ 2

@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row))

Ответ 3

Вы пробовали создать шаблон редактора для своего x.Order?

в шаблоне редактора:

<input type="text" id="@ViewData["id"]">

и используйте это на своей странице просмотра:

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })

Ответ 4

Я знаю, что этот вопрос довольно старый, но мне нужно было сделать следующее:

@Html.EditorFor(modelItem => item.EndDate, 
                new { htmlAttributes = new { @class = "form-control", @id = @endID } })

Вы можете предоставить ему любые классы или идентификаторы, которые вам нужны/нужны. У меня есть это ранее на моей странице, а также для создания другого идентификатора для каждого элемента:

string endID = "end-" + @item.ID;

Надеюсь, это поможет кому-то в будущем.

Ответ 5

Я не уверен, можно ли переопределить атрибут ID при использовании строго типизированных помощников. Но вы можете использовать другой немодельный тип:

@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order)

Это будет использовать первый параметр как идентификатор, а второй - как значение по умолчанию.