ASP.NET MVC 3助手中的Tab顺序

Abd*_*qib 12 asp.net asp.net-mvc tab-ordering

如何将Tab Order属性用于以下代码:

<td>
    @Html.EditorFor(model => model.Cost)                
</td>
Run Code Online (Sandbox Code Playgroud)

我试过这个:

<td tabindex=1>
    @Html.EditorFor(model => model.Cost)                
</td>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Joe*_*een 14

您还可以在帮助程序本身中指定相同的html属性,如下所示.

@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })
Run Code Online (Sandbox Code Playgroud)

  • 这在`EditorFor`中不起作用,类型对象的EditorFor中的第二个参数用于构建View Data,而不是根据文档添加HTML属性:http://msdn.microsoft.com/en-us/library/ff406462.aspx (2认同)

Cha*_*ell 11

与@ 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 })
Run Code Online (Sandbox Code Playgroud)

您还可以使用已直接传递给编辑器模板的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 })
Run Code Online (Sandbox Code Playgroud)