2011-08-10 13 views
5

¿Cómo puedo cambiar el índice de HtmlFieldPrefix?¿Cómo puedo cambiar el índice de lista de TemplateInfo.HtmlFieldPrefix?

Me estoy Children[0] de EditorFor() y quiero que sea Children[@Model.Id]
o Children[2].Children[4] de EditorFor() y quiero que sea Children[@"ParentModel".Id].Children[@Model.Id]

no sabrá el prefijo real hasta el tiempo de ejecución. ¿Preferiblemente habría una manera incorporada de cambiarlo?
¿O simplemente jugando con la cuerda? Todavía soy nuevo en las funciones de cadena C#.

Respuesta

8

trate de poner la siguiente dentro de su editor de plantillas:

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

Eso es genial! Pensé que era un tipo de expresión regular. Gracias por mostrarme cómo. – Benjamin

+0

solución encantadora. No me gusta el mvc porque no tiene todo, pero tiene flexibilidad para hacer casi cualquier cosa que desee. – bijayk

Cuestiones relacionadas