2010-12-16 152 views
50

J'ai un modèle d'éditeur personnalisé où ajouter des valeurs à la ViewData comme ceci:Html.EditorFor additionalViewData

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

Comment puis-je accéder à la fois la valeur et le nom de la propriété?

+0

Voir mon exemple ici: http://stackoverflow.com/a/9400359/ 1173800 – jhilden

+1

Dans le cas où quelqu'un d'autre a le même problème que moi et apparaît ici de Google - je ne pouvais pas comprendre pourquoi mon ViewData ["Quelque chose"] était nul dans mon EditorFor personnalisé. Il s'est avéré que je chargeais une vue différente dans mon navigateur de celle où j'ai ajouté le type anonyme pour le tester. Erreur stupide. – DavGarcia

Répondre

58

ViewData est un dictionnaire.

Vous pouvez écrire ViewData["Title"], ou vous pouvez passer en revue ViewData (qui est une collection de KeyValuePairs) ou ViewData.Keys.

+0

Les données peuvent-elles également être accessibles depuis ViewBag? – Jordan

31

Vous pouvez imbriquer votre htmlAttributes objet en vue des données:

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

Ensuite, dans votre modèle de l'éditeur:

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