2011-08-10 103 views
5

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

我碰到EditorFor Children[0](),我希望把它從EditorFor()Children[@Model.Id]
Children[2].Children[4],我希望把它Children[@"ParentModel".Id].Children[@Model.Id]

我不知道實際的前綴,直到運行時。最好是有一種內置的方式來改變它?
或只是搞亂了字符串?我仍然對C#字符串函數不熟悉。

回答

8

嘗試把你的編輯模板中的以下內容:

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

這是偉大的!我認爲這是一種正規的表達方式。感謝您向我展示如何。 – Benjamin

+0

可愛的解決方案。我不喜歡mvc,因爲它沒有包含任何東西,但它可以靈活地做你想要的任何東西。 – bijayk

相關問題