Domanda

Bene, il mio ultimo contratto mi sta costringendo nel mondo antico di .Net 1.1.

Da quando uso jQuery e Rails da un po 'di tempo, le soluzioni AJAX simili a problemi continuano a saltarmi in testa e non posso fare a meno di scriverle.

Quindi il mio problema piuttosto semplice è che ho 3 azioni che devo eseguire su un record (inserire, aggiornare ed eliminare) che posso gestire l'indice e mostrare usando i controlli ASP.Net e javascript.

Sto usando jQuery per tutte le mie cose AJAX.

Il modo in cui ho pensato di farlo è l'introduzione di una semplice pagina ASPX che funge da controller per queste tre azioni, dandogli una visione anemica e gestendo tutto il rendering dei dati di ritorno usando concatenazioni di stringhe. C'è un modello migliore da usare qui? Come hai hackerato Ajax in ASP.Net 1.1?

Ho visto questo post su ajaxprojects che sta usando un po ' tecnica simile tranne per il fatto che stanno eseguendo 1 pagina per azione ajax.

È stato utile?

Soluzione

In passato usavamo Ajax nel classico ASP semplicemente inviando messaggi XML a una pagina ASP che caricava l'xml dal corpo della richiesta.

Puoi farlo usando una pagina ASHX (gestore ASP.Net) Non avrai il sovraccarico extra degli oggetti della pagina. Quindi puoi fondamentalmente creare un payload Xml (o json o qualunque cosa tu voglia) pubblicarlo nella pagina ashx che ha un solo metodo che ispezionerà la richiesta eseguendo ciò di cui hai bisogno e restituendo i risultati di cui hai bisogno.

Altri suggerimenti

Più lasci il paradigma del controllo Web e meno viewstate usi, più semplice sarà, il che è sorprendente ma vero. Tuttavia, lo sviluppo di ASP.NET ci protegge da HTML, CSS e JavaScript e pochi sviluppatori ASP.NET sono pronti a gestirli immediatamente in modo così diretto, quindi prendere la via di mezzo all'inizio è probabilmente il migliore.

La buona notizia è che ASP.NET 1.1 funziona molto bene con jQuery e puoi fare tutto quello che vuoi, dall'evitare del tutto i controlli web e usando solo l'HTML grezzo con jQuery, fino a sfruttare appieno ASP.NET e cospargere in solo un po 'di jQuery, per esempio, per convalidare sul client ed evitare così un postback.

Un esempio di prendere una via di mezzo potrebbe essere quello di creare un normale datagrid, idealmente spento su una pagina separata, circondato solo da un elemento modulo (con runat = server rimosso), o forse solo un elemento div, e servirlo tramite il metodo di caricamento jQuery ajax.

Personalmente non utilizzo nessuna delle librerie Microsoft Ajax. Ogni volta che vedo persone che le usano nei campioni, sembrano complicare solo ciò che jQuery fa già più semplice, più veloce e migliore. Questa roba è semplice, non renderla brutta e lenta estraendo inutili librerie MS e usando ingombranti XML senza alcuni buoni motivi. Inoltre rimuovo personalmente ViewState da tutte le pagine e non ho ancora trovato un caso in cui ViewState abbia fatto qualcosa di utile per me che non fosse più semplice ed efficiente solo per gestirlo direttamente. Si scopre che non ne abbiamo mai avuto bisogno, ma l'Ajax ha concluso l'affare. E la riduzione delle dimensioni della pagina con il corrispondente aumento della velocità è una rivelazione. Vivere più pienamente nell'attuale paradigma web è molto più semplice e meglio che vivere con la magica perdita di ASP.NET.

HTH.

Mike

P.S. Caspita, tutti stanno partecipando a uno sviluppo web più semplice e migliore: Controllo dell'HTML in ASP.NET WebForms

Continuare a girare il tuo con jquery non è una cattiva idea ma ovviamente dovrai "reinventare la ruota" creazione del supporto ajax di base nei controlli esistenti. Il modo più veloce per completare il progetto sarebbe quello di rintracciare le ultime versioni dei controlli Infragistic che supportano .NET 1.1.

Non sarei sorpreso se avessero ancora 1.1 versioni nei loro pacchetti del 2007 in quanto sono abbastanza bravi sulla compatibilità.

Ho usato AjaxPro per i miei progetti 1.1 con un discreto successo. Il modello che ho usato è stato quello di creare controlli utente per rappresentare le "viste", quindi nelle richieste ajax avrei caricato dinamicamente il controllo utente e chiamato il metodo Render () sul controllo.

Quando chiami Render (), scriverà l'HTML per il tuo controllo su uno scrittore di testo che puoi quindi restituire al client tramite la tua chiamata ajax e inserirlo in un div segnaposto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top