我有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>
})
第二个不起作用。任何人都知道剃刀是否支持这种语法?或者我做错了什么?
答案 0 :(得分:2)
在剃刀中使用方法时,它会假定它是一个帮助器或属性,并返回一个HelperResult或数据。
由于List.ForEach方法没有返回任何内容,因此调用将失败。
答案 1 :(得分:1)
ForEach
是List<T>
上的一种方法,通常是人们在IEnumerable<T>
上创建的扩展方法(因此您可能会错过@using
的{{1}}指令/或扩展方法一起完成),但从功能编程的角度来看,许多人(包括Eric Lippert)都认为设计很差。
坚持你的第一个。
或者更好的是,使用编辑器模板并完全保存循环。