J'ai une méthode d'extensionASP.NET MVC Razor - Erreur lambda
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);
});
}
Lorsque je tente d'utiliser cette méthode comme celui-ci
<ol>
@Model.List(t=> {@<li>@t.Title</li>});
</ol>
Je reçois une erreur "attendu"
Mais si je
<ol>
@Model.List(@<li>@item.Title</li>)
</ol>
c'est bon. (quelle est la variable "item"? Où la définit-elle?)
Pourquoi le premier exemple génère-t-il une erreur?
Pourquoi mon premier exemple ne peut-il pas fonctionner? – Alexandre
Pour la même raison que vous ne pouvez pas écrire 'x =>" abc ";' comme une instruction normale. Il n'y a aucun moyen d'émettre du HTML en tant qu'instruction intégrée dans Razor; vous devez l'utiliser comme un lambda. – SLaks