案件:
我有使用X类的编辑器模板显示的X类项列表。
问题:
如何在编辑器模板的内部获取正在处理的项目的索引?
最佳答案
我一直在使用此HtmlExtension,它仅返回所需的迭代ID。基本上,它是ViewData.TemplateInfo.HtmlFieldPrefix
上的正则表达式,用于捕获最后一个数字。
public static class HtmlExtensions
public static MvcHtmlString Index(this HtmlHelper html)
{
var prefix = html.ViewData.TemplateInfo.HtmlFieldPrefix;
var m = Regex.Match(prefix, @".+\[(\d+)\]");
if (m.Success && m.Groups.Count == 2)
return MvcHtmlString.Create(m.Groups[1].Value);
return null;
}
}
可以在EditorFor-template中使用,例如:
@Html.Index()