2010-11-24 5 views
1

Ma réponse est: puis-je de toute façon lier une propriété IDictionary en utilisant des expressions lambda comme cela a été fait dans MVC 2 pour les propriétés simples?Est-il possible de lier IDictionary en utilisant lambdas?

Je sais comment lier IDictionary en utilisant l'ancienne notation MVC via des chemins de propriété de chaîne. Mais tout le reste des propriétés du modèle dans toutes les applications fonctionne en utilisant la nouvelle approche MVC 2, via des expressions lambda. Et donc je ne voudrais absolument pas appliquer la vieille manière de liaison de modèle.

J'ai vu aussi un article Model Binding To A List posté par Phil Haack dans son blog. Mais dans cet article Phil montre comment faire une liaison en utilisant lambdas juste pour les listes, pas pour Dicrionaries. J'ai essayé de faire similaire avec les propriétés typées du dictionnaire, mais DefaultModelBinder ne les reconnaît pas.

Exemple:

liaison est:

<%= Html.TextBoxFor(model => model.DictionaryProperty[key].Title)%> 

rendu html est:

<input id="DictionaryProperty_one__Title" name="DictionaryProperty[one].Title" type="text" value="" /> 

je serais appeciated pour des conseils utiles.

UPD: Un index de la propriété dictionnaire mentionné ci-dessus a été précisé, bien sûr:

Vue:

<%= Html.Hidden("DictionaryProperty.index",key)%> 

rendu html:

<input id="DictionaryProperty_index" name="DictionaryProperty.index" type="hidden" value="one" /> 

Répondre

Questions connexes