C# 使用ViewData.TemplateInfo.htmlfiedprefix和@Html.EditorFor的foreach循环

C# 使用ViewData.TemplateInfo.htmlfiedprefix和@Html.EditorFor的foreach循环,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,以下是我的查看页面ABCD.cshtml中的代码 foreach (var category in categories) { @Html.EditorFor(m => m.UserPreferences, new { index}) } 以下是“我的视图共享编辑器”中的代码MyViewModelTemplate.cshtml @using My.MVC.Models.UserPreference @model MyViewModelTemplate @{ var htm

以下是我的查看页面ABCD.cshtml中的代码

foreach (var category in categories)
{
    @Html.EditorFor(m => m.UserPreferences, new { index})
}
以下是“我的视图共享编辑器”中的代码MyViewModelTemplate.cshtml

@using My.MVC.Models.UserPreference
@model MyViewModelTemplate
@{
    var htmlPrefix = ViewData.TemplateInfo.HtmlFieldPrefix;
}
Prefix: @Html.Raw(htmlPrefix)<Br/>
@使用My.MVC.Models.UserPreference
@模型MyViewModelTemplate
@{
var htmlPrefix=ViewData.TemplateInfo.HtmlFieldPrefix;
}
前缀:@Html.Raw(htmlPrefix)
在htmlPrefix中,我不断获取UserPreferences[0],而不是foreach集合中每个项目的UserPreferences[0]、UserPreferences[1]、UserPreferences[2]、。。。诸如此类

因为我只为每个控件获取UserPreferences[0],所以它呈现所有控件,如下所示

<input name=UserPreferences[0].MyField ....>       <---- My Problem

尝试类似于的方法可能不是正确的变量

for(i = 0; i< category.length; i++;)
{
    @Html.EditorFor(m => m.UserPreferences[i], new { index})
}
for(i=0;im.UserPreferences[i],新的{index})
}
<input name=UserPreferences_0_.MyField ....> 
<input name=UserPreferences_1_.MyField ....> 
<input name=UserPreferences_2_.MyField ....> 
for(i = 0; i< category.length; i++;)
{
    @Html.EditorFor(m => m.UserPreferences[i], new { index})
}