Как я могу изменить индекс списка TemplateInfo.HtmlFieldPrefix? - PullRequest
5 голосов
/ 11 августа 2011

Как я могу изменить индекс HtmlFieldPrefix?

Я получаю Children[0] от EditorFor () и хочу сделать его Children[@Model.Id]
или Children[2].Children[4] из EditorFor () иЯ хочу сделать это Children[@"ParentModel".Id].Children[@Model.Id]

Я не буду знать фактический префикс до времени выполнения.Желательно, чтобы был встроенный способ изменить его?
Или просто возиться со строкой?Я все еще новичок в строковых функциях C #.

1 Ответ

9 голосов
/ 11 августа 2011

Попробуйте добавить следующее в шаблон вашего редактора:

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