Utilizzo ASP.NET (C#) negli ultimi due anni. Ho imparato così tanto, ma c'è ancora molto da imparare :)Utilizzo di controlli utente Web invece di moduli Web
ho MasterPages, 'controlli utente Web' usato per cose come le intestazioni, piè di pagina di navigazione, ecc
Una cosa che non ho mai veramente intesa è la pratica dell'uso di "controlli utente Web" per i contenuti e la logica dell'utente;
Home.aspx ------ Home.ascx
AboutUs.aspx ----- AboutUs.ascx
Ordering.aspx ---- Ordering.acsx
Ho lavorato con alcuni progetti negli ultimi mesi che utilizzano questa struttura. Sono consapevole che questa è una pratica comune, ma non ne capisco appieno i benefici.
Mi ricordo quando ho provato questo approccio prima e ho finito per avere problemi di visualizzazione con i controlli come Gridview ... una volta che ho preso tutta la logica e l'ho inserita in una pagina .aspx, tutto ha funzionato bene.
Ora mi rendo conto che forse ho dovuto aggiungere Gridview alla raccolta viewstate ... ma ciò non fa che rafforzare la mia difficoltà a capire perché viene utilizzato questo approccio, visto il problema del viewstate.
Comprendo appieno i vantaggi dei "controlli utente Web" in relazione a elementi come intestazioni, menu, piè di pagina ecc. Ovunque che implichino la duplicazione ma i progetti che ho visto hanno pagine/controlli che sono piuttosto specifici - in altre parole è improbabile che possa essere riutilizzato da qualsiasi altra parte - la pagina aspx contiene solo un controllo (.ascx) con il contenuto e la logica e verrà utilizzata solo su quella pagina, da nessun'altra parte.
Ignorando il "riutilizzo del codice", quali altri vantaggi offre questo approccio?
Brian, posizionare qualcosa come un modulo di commento in un controllo web ha perfettamente senso, io sono tutto per posizionare widget come questo nei controlli ... forse questi progetti che ho visto dove l'intera pagina è annidata all'interno di un controllo web non è il modo di fare le cose, dopo tutto? .... se Home.aspx contenesse più controlli come "HomepageSlideshow.ascx", "TwitterFeed.ascx", ciò avrebbe molto più senso. – Dal
@Dal, esattamente. Sebbene tecnicamente diversa una pagina e un controllo utente web si comportino essenzialmente in modo molto simile e ci sia bisogno di un vero scopo, in modo che l'approccio che stai descrivendo sia stato preso. Senza ulteriori dettagli non c'è alcun beneficio evidente –