2010-12-16 27 views
50

Tengo un editor de plantillas a medida, donde agrego valores a la ViewData así:Html.EditorFor additionalViewData

@Html.EditorFor(model => model.PhoneNumber , new { Title = "SomeValue" }) 

¿Cómo puedo acceder tanto el valor como el nombre de la propiedad?

+0

Ver mi ejemplo aquí: http://stackoverflow.com/a/9400359/ 1173800 – jhilden

+1

En caso de que alguien más tenga el mismo problema que yo y aparezca aquí en Google, no pude entender por qué mi ViewData ["Algo"] era nulo en mi Editor de Editor personalizado. Resultó que estaba cargando una vista diferente en mi navegador de donde agregué el tipo anónimo para probarlo. Error tonto. – DavGarcia

Respuesta

58

ViewData es un diccionario.

Puede escribir ViewData["Title"], o puede recorrer ViewData (que es una colección de KeyValuePairs) o ViewData.Keys.

+0

¿Pueden los datos también ser accesibles desde ViewBag? – Jordan

31

puede anidar sus htmlAttributes objeto a la vista de datos:

<%= Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { Title = "SomeValue" } }) 

Luego, en el editor de plantillas:

<%= Html.TextBox("", Model.Value, ViewData["htmlAttributes"])%> 
Cuestiones relacionadas