Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Лямбда выражение: не получается составить во вьюхе

62K
28 апреля 2012 года
Cyberatino
24 / / 06.03.2012
Передаю из контроллера во вьюху вот такую модель:
@model List<Dog>

Где-то во вьюхе мне надо сделать текстовый инпут для объекта Dog (или для любого другого объекта, не связанного с Dog вообще, кароче тип не важен).
Соотвественно пишу:

@Html.TextBoxFor((Dog d) => d.Nickname)

Ну, и получаю по всем статьям от компилятора за эти вольности:

Error: The type arguments for method 'System.Web.Mvc.Html.InputExtensions.TextBoxFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Бьюсь уже второй день, пытаясь понять, как завернуть эту лямбду правильно...
277
28 апреля 2012 года
arrjj
1.7K / / 26.01.2011
http://stackoverflow.com/questions/8894442/mvc-razor-view-nested-foreachs-model
62K
28 апреля 2012 года
Cyberatino
24 / / 06.03.2012
Спасибо за оперативность, arrjj.

Но ведь не так всё просто.
В ответе предполагается, что есть циклы, в которых раскрываются свойства переданной из контроллера Модели.
Как работает binder я себе представляю тоже и вообще это несколько другая тема, чем та, о которой я спрашиваю.

Переиначу вопрос. :) Вот есть у нас strongly typed view какой-нибудь. Мы в него засовываем заранее известную модель. Ну, и слава Всевышнему, пусть она там как угодно себе крутиться и парситься и сеттиться. Нам плевать на саму эту Модель. Нам нужно...
...составить лямбду для другого типа в этой же strongly typed вьюхе. Компилятор вопрошает нас о том, какой тип нужно в итоге вывести. А мы ему и говорим "вот такой тип". И, в конечном счёте, всё сводится к тому, как именно сказать компилятору, что надо вывести.

Когда я искал ответ на этот вопрос в первый раз, то довольно быстро обнаружил то, что мне надо. Но уже забыл решение, а прошло-то пару дней :) Со второй попытки вспомнить сложнее :)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог