我有一个扩展方法ASP.NET MVC剃刀 - 拉姆达错误
public static HelperResult List<T> (this IEnumerable<T> items, Func<T, HelperResult> template) {
return new HelperResult(writer =>{
foreach (var item in items)
template(item).WriteTo(writer);
});
}
当我尝试用这种方法类似这样的
<ol>
@Model.List(t=> {@<li>@t.Title</li>});
</ol>
我得到一个错误“预计”
但是如果我这样做
<ol>
@Model.List(@<li>@item.Title</li>)
</ol>
没关系。 (什么是变量“item”?它在哪里定义的?)
为什么第一个示例会引发错误?
为什么我的第一个例子不能工作? – Alexandre 2011-04-10 16:45:43
出于同样的原因,您不能像常规语句那样编写'x =>“abc”;'。在Razor中没有办法发布HTML作为嵌入语句;你需要将它用作lambda。 – SLaks 2011-04-10 16:48:19