Solved

How can I turn off eventvalidation from code behind?

Posted on 2009-04-10
8
416 Views
Last Modified: 2012-05-06
I've created an extension method to allow panels in my web application to rendertoHTML on demand.
Unfortunately to do it as I am, requires that EventValidation is turned off.  I don't want to turn it off for the entire site, and I do not want to have to know before hand to turn it off in the page direction.

Surely there is a way to turn it off as needed, then turn it back on after I'm done?  It seems more secure that way.
<System.Runtime.CompilerServices.Extension()> _

  Public Function RenderedOutput(ByVal c As System.Web.UI.WebControls.Panel) As String

     

        Dim SB As New System.Text.StringBuilder()
 
 

        Using swr As New System.IO.StringWriter(SB)

            Using htmltw As New System.Web.UI.HtmlTextWriter(swr)

                c.RenderControl(htmltw)

                Return SB.ToString()

            End Using

        End Using
 
 
 

    End Function

Open in new window

0
Comment
Question by:dguillen
  • 4
  • 3
8 Comments
 
LVL 18

Expert Comment

by:carlnorrbom
Comment Utility
Hi,

As far as I know You can't explicitly turn off event validation from code behind. You need to do it at page level declaratively in the page directive or in the <pages> configuration section of the web.config.

I guess one way around it could possibly be to craft some sort of Http utility to trap the rendered html before outputting it to the page and rewrite the page directive if a certain condition is met. I don't have access to my dev box at the moment but will look into it as soon as I can. Not sure about this though!

/Carl.
0
 
LVL 1

Author Comment

by:dguillen
Comment Utility
what about if you create a page on the fly?
 it feels "weird" the idea that you can't control the site through code, you have to do it through special markup, it seems to me that if you generate pages dynamically they'd have given a way to do it outside of modifying the web.config!
0
 
LVL 16

Expert Comment

by:MikeMCSD
Comment Utility
did you try:

validator.Enabled = false

and/or

validator.EnableClientScript = false

0
 
LVL 1

Author Comment

by:dguillen
Comment Utility
I'm sorry MikeMCSD, I think you're thinking of form validator controls, where as I'm referring to the page Eventvalidation attribute.  Thanks though!
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 18

Expert Comment

by:carlnorrbom
Comment Utility
Hi,

Well, as far as I understand it's "By design"... I would probably still look into the HttpUtility option to catch and rewrite the rendered html before building the page and sending it off to the browser.

/Carl.
0
 
LVL 1

Author Comment

by:dguillen
Comment Utility
its definitely by design, but most things can be gotten around.  I'm not sure an httputility would work because the page directive is read by the server not streamed to the client? Unless you were thinking of something else?
0
 
LVL 18

Accepted Solution

by:
carlnorrbom earned 500 total points
Comment Utility
Hi,

Yes I have given this some time and I have not been successful. I was able to supress the error message generated by the event validation using a custom httpmodule and overriding the BeginRequest event and then using context.Context.ClearError() but I don't see this as a viable solution in Your case.

/Carl.
0
 
LVL 1

Author Closing Comment

by:dguillen
Comment Utility
Well I'm going to accept this as the solution, essentially that it can't be done, or at least most likely can't be done.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
asp.net bundle 8 34
ASP.net VB.net Email  a webpage 3 24
dynamic menu in asp.net c# 11 26
VB.NET HttpWebRequest 12 30
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now