Bonjour,
Est il possible de supprimer totalement le viewstate (pas seulement le désactiver), qu'il n'apparaisse plus du tout dans le HTML généré et les autres champs caché en prime :
__VIEWSTATE
__EVENTTARGET
__EVENTARGUMENT
Merci
L.
Bonjour,
Est il possible de supprimer totalement le viewstate (pas seulement le désactiver), qu'il n'apparaisse plus du tout dans le HTML généré et les autres champs caché en prime :
__VIEWSTATE
__EVENTTARGET
__EVENTARGUMENT
Merci
L.
Salut Lolo James Bond,
tu connais cette propriete : Page.EnableViewState, propriété ?
Tu peux meme l'utiliser dans ton fichier de config.
Bonjour bonjour
Certe j'ai déjà désactivé le viewstate dans la config :
<pages enableViewStateMac="false" enableViewState="false" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" />
Mais le champ caché est qd même généré en html...
Donc il faut faire autre chose en plus
++
L.
Dans ce cas, j'ai fait ma petite recherche![]()
et on parle de surcharger quelque methodes :
Essai pour voir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 protected override void SavePageStateToPersistenceMedium( object viewState) { } protected override object LoadPageStateFromPersistenceMedium() { return null; }
Salut,
Merci, j'avais trouvé aussià force de chercher...
mais pour aller plus loin, ta technique vide les champs cachés mais ne le supprime pas. Il faut aussi surcharger la method prerender :
Voili voila !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 protected override void Render(System.Web.UI.HtmlTextWriter writer) { System.IO.StringWriter stringWriter = new System.IO.StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); base.Render(htmlWriter); string html = stringWriter.ToString(); int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\""); if (StartPoint >= 0) { int EndPoint = html.IndexOf("/>", StartPoint) + 2; string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint); html = html.Remove(StartPoint, EndPoint - StartPoint); } StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__EVENTARGUMENT\""); if (StartPoint >= 0) { int EndPoint = html.IndexOf("/>", StartPoint) + 2; string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint); html = html.Remove(StartPoint, EndPoint - StartPoint); } StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__EVENTTARGET\""); if (StartPoint >= 0) { int EndPoint = html.IndexOf("/>", StartPoint) + 2; string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint); html = html.Remove(StartPoint, EndPoint - StartPoint); } writer.Write(html); }
Merci encore,
L.
(PS : plus de viewstate, plus de postback, bientot plus de framework... Je commence à faire du .net comme du php, lol)
Bonjour !
Je travail sur un site qui contient un webform pour le login et le pwd qui (default.aspx) qui fait une redirection vers une autre page apres identification, et je surcharge la methode Render dans le .cs de cette page.
le surcharge de la methode marche (suppression du viewstate), mais quand je valide le login & pwd jai plus de redirection.
Avez vous une solution ?
Merci d'avance..
Partager