Chi sviluppa con ASP.NET avrà sicuramente a che fare con il ViewState, che rappresenta lo stato della pagina dopo la sua ultima elaborazione sul server ed è utilizzato per mantenere lo stato dei controls di una pagina.
Vi sarete anche accorti che nel caso i controlli siano molti il campo hidden __VIEWSTATE si allunga a dismisura, spostando in basso il codice HTML della pagina, cosa che ai motori di ricerca non piace più di tanto.
Con questo script, utlizzato anche da DotNetNuke, vedremo come spostare il tag input alla fine del form, creando una classe base che estende la System.Web.UI.Page.
Una volta creato l'assembly basterà ereditare la classe base nella pagina con la direttiva Inherits.
Public Class BasePage Inherits System.Web.UI.Page Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) Dim stringWriter As System.IO.StringWriter = New System.IO.StringWriter Dim htmlWriter As HtmlTextWriter = New HtmlTextWriter(stringWriter) MyBase.Render(htmlWriter) Dim html As String = stringWriter.ToString() Dim StartPoint As Integer = html.IndexOf("<input type=""hidden"" name=""__VIEWSTATE""") If StartPoint >= 0 Then Dim EndPoint As Integer = html.IndexOf("/>", StartPoint) + 2 Dim ViewStateInput As String = html.Substring(StartPoint, EndPoint - StartPoint) html = html.Remove(StartPoint, EndPoint - StartPoint) Dim FormEndStart As Integer = html.IndexOf("</form>") - 1 If FormEndStart >= 0 Then html = html.Insert(FormEndStart, ViewStateInput) End If End If writer.Write(html) End Sub End Class
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Cache policy su route groups di Minimal API in ASP.NET Core 7
Gestire la query string nell'output cache di ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core
Short-circuiting della Pipeline in ASP.NET Core
Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
Implementare il throttling in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Catturare la telemetria degli eventi di output cache in ASP.NET Core