Dopo aver lavorato in MVC per alcuni mesi, sono tornato in un'applicazione WebForms 3.5 precedentemente scritta e sto cercando di sistemare quello che posso con ciò che ho imparato.Supporto Linq Lamba in WebForm ASCX
Parte di questo è il concetto di "modello fortemente caratterizzato con una vista parziale" che è incredibilmente fantastico. Ereditando il mio controllo personalizzato "ListTemplate", posso quindi utilizzare il relativo metodo getModel() per ottenere qualcosa di simile a questo:
<% List<Models.CaseStudy> model = GetModel<Models.CaseStudy>(); %>
posso quindi eseguire un foreach sopra il modello, e tutto è felice. Tuttavia, ho voluto fare un raggruppamento così ho aggiunto i riferimenti a:
Poi, con un po 'meno-che-ideale della sintassi, provato questo:
<% IEnumerable<IGrouping<string, Models.CaseStudy>> model = GetModel<Models.CaseStudy>().GroupBy(e => e.Client.Name); %>
Ma no! "Messaggio di errore del compilatore: CS1525: termine di espressione non valido '>'" - e sembra essere il lambda in difetto. Non funziona se inserisco anche GroupBy() nei parametri foreach.
C'è un modo per far funzionare lambdas all'interno dei file ASCX?
Ah, si dice: Informazioni sulla versione: Microsoft .NET Framework Versione: 2.0.50727.3053; Versione ASP.NET: 2.0.50727.3053. Come posso specificare la v3.5 e perché i file ASCX dovrebbero essere elaborati in modo diverso dal resto del mio sito (che è sicuramente v3.5 come impostato come framework di destinazione nel riquadro delle proprietà del progetto web)? – tags2k
Per inciso, il tipo di reso di GetModel è List –
tags2k
Ordinato ora - è strano. Configura un nuovo progetto 3.5 per confrontare i file web.config e per qualche motivo la sezione system.codedom> compilers era vuota dal mio altro progetto! Mi chiedo quanto sia passato così! – tags2k