Ответ 1
Вы также можете указать один и тот же атрибут html в самом помощнике следующим образом.
@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })
Как я могу использовать свойство Order Order для следующего кода:
<td>
@Html.EditorFor(model => model.Cost)
</td>
Я пробовал это:
<td tabindex=1>
@Html.EditorFor(model => model.Cost)
</td>
любые предложения?
Вы также можете указать один и тот же атрибут html в самом помощнике следующим образом.
@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })
В отличие от правого ответа @Stuy1974, если вы не хотите оставить решение EditorFor
, вам придется подключить собственный Шаблон редактора.
@ModelType SomeApp.ViewModels.SomeNiftyViewModel
// be sure to include the TabIndex info in the ViewModel
@Html.TextBoxFor(model => model.Cost, new { tabindex = model.TabIndex })
Вы также можете использовать параметр ViewData, уже переданный непосредственно в шаблон редактора, вместо добавления индекса табуляции к модели:
// In the main view
@Html.EditorFor(model => model.Cost, new { TabIndex = 3 })
// In the editor template
@{ int tabIndex = (ViewData["TabIndex"] as int?) ?? 0; }
@Html.TextBoxFor(model => model, new { tabindex = tabIndex })
Просто сделайте это
@Html.EditorFor(model => model.Cost, new { htmlAttributes = new { tabindex = 34 } })
Другим вариантом, позволяющим сохранить редактор, является установка индекса вкладки в javascript после того, как страница загрузилась с чем-то вроде:
var myEditorFor = document.getElementById("MyEditorForId");
if (myEditorFor != null) {
myEditorFor.setAttribute("tabindex","18")
}
К сожалению, метод @Html.EditorFor не предоставляет возможность добавлять атрибуты HTML. Вы можете добавить их с помощью более конкретного вызова метода. В приведенном выше случае я бы использовал -
@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })