Differenza tra pagina ASP.NET e controllo

2

Attualmente lavoro all'interno di un sistema che tutti i nuovi strumenti vengono creati come controllo personalizzato lato server ASP.NET, piuttosto che una pagina Forms o MVC. Uno dei miei progetti più recenti è quello di convertire una pagina Form in un controllo (in pratica passando da un vecchio sito a quello attuale), e per quanto posso vedere, questo richiede pochissime modifiche. La maggior parte delle modifiche che rendono questo "lavoro" sono nella sezione di intestazione (modifica il tag Page sul tag Control, esegui qualche ritocco dietro le quinte, ecc.)

Tuttavia, nonostante la maggior parte delle pagine che ho convertito in controlli funzionino perfettamente, questo controllo non si desidera aggiornare correttamente. Si suppone di aggiornare per mostrare l'elaborazione e il completamento quando viene colpito un pulsante, ma si aggiorna solo correttamente circa la metà del tempo. Ho provato ad aggiustare l'UpdatePanel, il modello di contenuto e i controlli rilevanti all'interno, ma continua a voler agire a scaglie.

In definitiva, la mia domanda è, qual è la differenza tra una pagina intera e un controllo che causerebbe questo cambiamento di comportamento, quando cerco di tenerlo il più vicino all'originale (funzionante correttamente) e le poche modifiche minori può vedere possibilmente aiutare, in realtà non ha alcun effetto?

    
posta Tom A 26.09.2016 - 21:02
fonte

1 risposta

1

Questa domanda è difficile da rispondere senza informazioni su cosa succede nel codice stesso, ma ci provo.

Controlla questo link: Panoramica del ciclo di vita della pagina ASP.NET

Spiega quale codice viene eseguito quando nel Ciclo di vita della pagina. Ciò che potrebbe accadere nel tuo codice è che la pagina su cui si trova il tuo controllo influenza il comportamento di quel controllo nel suo codice.

Se vuoi escluderlo, ciò che puoi fare è ispezionare il tuo traffico di rete, per vedere quali chiamate sono state fatte. Confronta le chiamate che causano aggiornamenti, con le chiamate che non causano aggiornamenti. Uno strumento come Fiddler può aiutare molto, perché ti permette di ispezionare lo stato di visualizzazione. Se vedi delle differenze qui, allora dovrebbero indicarti perché gli aggiornamenti non stanno sempre accadendo. In caso contrario, dovresti eseguire il debug di tutto il codice che viene colpito ogni volta che si verifica un aggiornamento, ma non lo fa.

Ancora una volta, è difficile dire cosa sta succedendo esattamente senza alcun codice, ma spero che questo ti aiuti nella giusta direzione.

    
risposta data 27.09.2016 - 10:46
fonte