mvc3 razor引擎是否支持List.ForEach()的输出

时间:2011-02-03 10:06:31

标签: c# asp.net-mvc asp.net-mvc-3 razor

我有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 个答案:

答案 0 :(得分:2)

在剃刀中使用方法时,它会假定它是一个帮助器或属性,并返回一个HelperResult或数据。

由于List.ForEach方法没有返回任何内容,因此调用将失败。

答案 1 :(得分:1)

ForEachList<T>上的一种方法,通常是人们在IEnumerable<T>上创建的扩展方法(因此您可能会错过@using的{​​{1}}指令/或扩展方法一起完成),但从功能编程的角度来看,许多人(包括Eric Lippert)都认为设计很差。

坚持你的第一个。

或者更好的是,使用编辑器模板并完全保存循环。