2011-08-10 12 views
5

Jak zmienić indeks HtmlFieldPrefix?Jak zmienić indeks listy TemplateInfo.HtmlFieldPrefix?

Dostaję Children[0] z EditorFor() i chcę, aby to Children[@Model.Id]
lub Children[2].Children[4] z EditorFor() i chcę, aby uczynić go Children[@"ParentModel".Id].Children[@Model.Id]

nie będę znać rzeczywistą prefiks aż wykonywania. Najlepiej byłoby wbudowany sposób, aby to zmienić?
Lub po prostu bawić się ciągiem? Wciąż jestem nowy w funkcjach ciągów C#.

Odpowiedz

8

spróbuj umieścić następujące wewnątrz szablonu edytora:

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

To świetnie! Pomyślałem, że to coś w rodzaju zwykłego wyrazu. Dzięki za pokazanie mi, jak. – Benjamin

+0

piękne rozwiązanie. Nie lubię mvc, ponieważ nie ma w nim wszystkiego, ale ma elastyczność, by robić prawie wszystko, czego pragniesz. – bijayk

Powiązane problemy