Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc3 razor引擎是否支持List.ForEach()的输出_C#_Asp.net Mvc_Asp.net Mvc 3_Razor - Fatal编程技术网

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

C# mvc3 razor引擎是否支持List.ForEach()的输出,c#,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,我有两个代码块,首先: @foreach(var filterName in Model.FilterNames){ <text> $("#@filterName").combobox({ source:"@(filterName)Autocomplete" }); </text> } @foreach(Model.filterName中的变量filterName){ $(“#@filterName

我有两个代码块,首先:

@foreach(var filterName in Model.FilterNames){
    <text>
        $("#@filterName").combobox({
            source:"@(filterName)Autocomplete"
        });
    </text>
}
@foreach(Model.filterName中的变量filterName){
$(“#@filterName”).combobox({
来源:“@(过滤器名称)自动完成”
});
}
第二:

@Model.FilterNames.ForEach(filterName => {
    <text>
        $("#@filterName").combobox({
            source:"@(filterName)Autocomplete"
        });
    </text>
})
@Model.filterName.ForEach(filterName=>{
$(“#@filterName”).combobox({
来源:“@(过滤器名称)自动完成”
});
})

第二个不行。有人知道razor是否支持这种语法吗?或者我做错了什么?

ForEach
列表上的一种方法,通常是人们在
IEnumerable
上创建的一种扩展方法(因此您可能缺少
@using
指令,用于
System.Collections.Generic
和/或整个扩展方法),但许多人(包括)从函数式编程的角度来看,这是一个糟糕的设计

坚持你的第一个


或者更好的方法是,使用编辑器模板并将循环一起保存。

在razor中使用方法时,它将假定它是帮助程序或属性,并返回帮助程序结果或数据


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

我包含System.Collections.Generic,所以不是这样。错误在
$(“#@filterName”).combobox({
。错误显示CS1056:意外字符“$”@qrow-尝试在
@functions{…}中包装该JS位
block.Is
Model.FilterNames
类型
List
?尽管如此,我还是不同意在这里使用这种方法。只要使用一个编辑器模板,这是合乎逻辑和正确的做法。所以目前razor不支持这种语法?不,它不会在
网页库中找到任何重载。编写
作废
>作为参数,因为它在C#中是不允许的。您必须返回要显示的数据或
HelperResult
。可以使用类似的方法,但必须使用helper方法:请参阅“将内联模板作为参数传递”一节在Razor中,当前不支持匿名方法,这就是为什么您的第二个方法不起作用的原因。