Возможно ли связать IDictionary с помощью лямбды? - PullRequest
1 голос
/ 25 ноября 2010

Мой ответ: могу ли я в любом случае связать свойство IDictionary с помощью лямбда-выражений, как это было сделано в MVC 2 для простых свойств?

Я знаю, как связать IDictionary, используя старую нотацию MVC через пути свойств строки. Но все остальные свойства модели во всем приложении работают с использованием нового подхода MVC 2 через лямбда-выражения. И поэтому мне крайне не хотелось бы применять старую манеру привязки модели.

Я также увидел статью Привязка модели к списку , опубликованную Филом Хааком в своем блоге. Но в этой статье Фил показывает, как сделать связывание, используя лямбды только для списков, а не для дикрионариев. Я пытался сделать то же самое с типизированными словарем свойствами, но DefaultModelBinder их не распознает.

Пример:

привязка:

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

рендеринг HTML это:

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

Буду признателен за любые полезные советы.

UPD: был указан индекс для свойства словаря, упомянутого выше, конечно:

вид:

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

рендеринг HTML:

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

1 Ответ

0 голосов
/ 25 марта 2011

Возможно, вам нужно что-то вроде класса OrderedDictionary для вашего DictionaryProperty

http://msdn.microsoft.com/en-us/library/system.collections.specialized.ordereddictionary.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...