Поддерживает ли бритва mvc3 вывод из List.ForEach () - PullRequest
3 голосов
/ 03 февраля 2011

У меня 2 блока кода, сначала:

@foreach(var filterName in Model.FilterNames){
    <text>
        $("#@filterName").combobox({
            source:"@(filterName)Autocomplete"
        });
    </text>
}

второй:

@Model.FilterNames.ForEach(filterName => {
    <text>
        $("#@filterName").combobox({
            source:"@(filterName)Autocomplete"
        });
    </text>
})

Второй не работает. Кто-нибудь знает, поддерживает ли бритва этот синтаксис? Или что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

При использовании метода в бритве, он будет предполагать, что это помощник или свойство и возвращает либо HelperResult, либо данные.

Поскольку метод List.ForEach ничего не возвращает, вызов завершится неудачей.

1 голос
/ 03 февраля 2011

ForEach - это метод на List<T> и обычно метод расширения, который люди создают на IEnumerable<T> (так что вы, вероятно, пропускаете директиву @using для System.Collections.Generic и / или метод расширения в целом), но это многие (в том числе Эрик Липперт ) считают плохим дизайном с точки зрения функционального программирования.

Придерживайтесь своего первого.

Или, что еще лучше, используйте Шаблон редактора и сохраните цикл в целом.

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