【问题标题】:How to display the array index number in an editor template如何在编辑器模板中显示数组索引号
【发布时间】:2015-03-04 12:00:30
【问题描述】:

在我的模型中,我有一个名为 EventField 的复杂类型的 List 属性。

我创建了一个编辑器模板,使用它可以正常工作:

@Html.EditorFor(e => e.EventField)

我的问题是,在该编辑器模板中,我想自己挑选索引/序列号作为数字。该索引将作为数据属性简单地添加到模板中,以便我可以使用 javascript 获取它。

有几个答案是不够的:

  1. @html.IdFor - 输出全名,例如 Name[0].other
  2. here - 你不能通过这种方式传递模型名称“EventField”。

是否有一个简单的方法/函数/帮助程序可以让我访问该索引,而无需更改我调用编辑器模板的方式?

【问题讨论】:

  • 索引的值,如果封装在辅助方法中并且您无权访问它。但这真的有必要吗。您可以轻松地使用 jquery 获取其容器内的 DOM 元素的索引。
  • 感谢 Stephen,jQuery 的 .Index 对我来说是新的,它使整个工作变得非常容易。很高兴知道这个问题是否有答案,因为我认为这将是一个简单的访问属性。
  • 简单的答案是否定的。 html 助手是一种输出 html (MvcHtmlString) 的扩展方法。它没有您可以访问的属性。

标签: asp.net-mvc razor


【解决方案1】:

怎么样:

@using System
@using System.Text.RegularExpressions

var i = Convert.ToInt32(Regex.Matches(
         ViewData.TemplateInfo.HtmlFieldPrefix,
         @"\[([0-9]+)?\]")[0].Groups[1].ToString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2011-07-22
    相关资源
    最近更新 更多