如何更改TemplateInfo.HtmlFieldPrefix的列表索引?

时间:2011-08-10 23:46:49

标签: c# asp.net-mvc-3 razor model-binding mvc-editor-templates

如何更改HtmlFieldPrefix的索引?

我从EditorFor()获得Children[0],我想将其设为Children[@Model.Id] 或来自EditorFor()的Children[2].Children[4],我想将其设为Children[@"ParentModel".Id].Children[@Model.Id]

直到运行时我才会知道实际的前缀。最好有内置的方法来改变它吗? 或者只是弄乱字符串?我还是C#字符串函数的新手。

1 个答案:

答案 0 :(得分:9)

尝试在编辑器模板中添加以下内容:

@model SomeViewModel
@{        
    ViewData.TemplateInfo.HtmlFieldPrefix = Regex.Replace(
        ViewData.TemplateInfo.HtmlFieldPrefix, 
        @"\[[0-9]+\]$", 
        m => string.Format("[{0}]", Model.Id)
    );
}