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

Заказ вкладок в ASP.NET MVC 3 Помощники

Как я могу использовать свойство Order Order для следующего кода:

<td>
    @Html.EditorFor(model => model.Cost)                
</td>

Я пробовал это:

<td tabindex=1>
    @Html.EditorFor(model => model.Cost)                
</td>

любые предложения?

4b9b3361

Ответ 1

Вы также можете указать один и тот же атрибут html в самом помощнике следующим образом.

@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })

Ответ 2

В отличие от правого ответа @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 })

Ответ 3

Просто сделайте это

@Html.EditorFor(model => model.Cost,  new { htmlAttributes = new { tabindex = 34 } })

Ответ 4

Другим вариантом, позволяющим сохранить редактор, является установка индекса вкладки в javascript после того, как страница загрузилась с чем-то вроде:

var myEditorFor = document.getElementById("MyEditorForId");

if (myEditorFor != null) {
    myEditorFor.setAttribute("tabindex","18")
}

Ответ 5

К сожалению, метод @Html.EditorFor не предоставляет возможность добавлять атрибуты HTML. Вы можете добавить их с помощью более конкретного вызова метода. В приведенном выше случае я бы использовал -

@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })