C# - Handle All Errors/messages In One Place On Page?
May 7, 2010
On my site I put things in Web user controls. For example, I will have a NewsItem Control, an Article Control, a ContactForm control.These will appear in various places on my site.
What I'm looking for is a way for these controls to pass messages up to the Page that they exist on.
I don't want to tightly couple them, so I think I will have to do this with Events/Delegates. I'm a little unclear as to how I would implement this, though.
A couple of examples:
1: A contact form is submitted. After it's submitted, instead of replacing itself with a "Your mail has been sent" which limits the placement of that message, I'd like to just notify the page that the control is on with a Status message and perhaps a suggested behaviour. So, a message would include the text to render as well as an enum like DisplayAs.Popup or DisplayAs.Success
2: An Article Control queries the database for an Article object. Database returns an Exception. Custom Exception is passed to the page along with the DisplayAs.Error enum. The page handles this error and displays it wherever the errors go.
I'm trying to accomplish something similar to the ValidationSummary Control, except that I want the page to be able to display the messages as the enum feels fit.
Again, I don't want to tightly bind or rely a control existing on the Page. I want the controls to raise these events, but the page can ignore them if it wants.I'd love a code sample just to get me started.
I know this is a more involved question, so I'll wait longer before voting/choosing the answers.
There are some syntax errors that are shown on IE8, on the error window, it shows line : 'some number' , code : 0 , char : 1 when I go to that Line via "View Source" I see nothing wrong there. it might be that error exists on the other place. How can I find the right error place?
We have an ASP.NET page which uses an update panel for partial page postbacks. On the server side, the postback performs some database work and updates several UI elements. The database code is all contained in several transactions, so the state will still be consistent if an exception is thrown. We're working on some error handling code now, and my first thought was to log the exception thrown, reload the last consistent UI state, and show some sort of modal popup or other ui element with a brief error message for the user (this is an intranet page, so we're automatically notified of the bug, and the users know where to find us.
I have an Application_Error handler in my Global.asax file. However, I load many pages using an XHR request and would rather these "sub pages" return javascript or a real 500 code for my main app to process, rather than an error page.
Is it possible to handle errors on certain pages in a different way? Can a master page handle its own errors in a page extending it without bubbling it up to Global.asax?
This morning I found myself dealing with A SQL POOLING ERROR Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. I did fix this with resetting my pooling and setting a pooling max =100 Anyway now Im starting to rethink how I open connections, dealing with errors and proper closing of connections Would you say this code below is a good way of opening, closing connections (even when errors occurred)
Dim Connection As SqlConnection Dim myConn As String = (ConfigurationManager.ConnectionStrings("MyConnString").ConnectionString) Connection = New SqlConnection(myConn) Try Dim DBCommand As SqlCommand Dim dt As New DataTable() Dim myDataSet As New DataSet Connection.Open() DBCommand = New SqlCommand("GetAllCategories_", Connection) DBCommand.CommandType = CommandType.StoredProcedure DBCommand.Parameters.Add("@HomePageID", SqlDbType.Int).Value = HiddenChosenVirtualMainID.Value Dim mySqlAdapter As New SqlDataAdapter(DBCommand) mySqlAdapter.Fill(dt) SecondLevelChildDatalist.DataSource = dt SecondLevelChildDatalist.DataBind() Catch ex As Exception 'Error goes here SqlConnection.ClearAllPools() Finally 'close the connction Connection.Close() Connection.Dispose() End Try
I really want to switch over to ajax, but i can't seem to get my error handlling perfect. If i can't handle errors correctly, I just can't use it. What I really want to happen is to do a full refresh of the Top Frame. How I normally do this is by a similar call to Response.Write(<script>top.location.href = ""</script>). I was currently doing this in Global.asax. This becomes a problem when I error out in an AJAX postback. I've also noticed that There is an AsycPostbackErrorHandler you can attach to the ScriptManager. This is all find an dandy, but it will still hit my Global.asax Application_Error Event.
I am honestly just not sure how to handle this.
As I said, the result I want is....To Reload the Top Frame with some Error Message...whether I have to do some weird redirection or whatever. My problem lies specifically with the Global.asax file.
When setting up asp.net error handlers for things like 404 errors, it is more 'efficient' to do this in IIS, or handle it in the Global.asax Application_Error event? I know the latter will be called, and I want to log this information in a database, but should I then just return without any redirect and let IIS do the redirect, or would it be better to do a response.redirect inside application_error once we've logged it?
I'm working on a functionality in my asp.net web site that enables the user to download some files as a zip file. I'm using the DotNetZip library to generate the zip file.
Now, if anything goes wrong, say the Utils.ExportToZip method fails, I want to present an error message to the user and not the download dialog. Do I have to remove some data from the Response object in order to cancel the download operation?
I am learning on how to create data access layer code for a web site. I want to ensure I am actually connecting to the datasource, so, I am wanting to use a try/catch block within my data access layer class methods. What I am not sure how to handle is a case where the connectionstate is not open. The method should ideally return a datatable. If an error is thrown would I just return an empty datatable? That is my first thought. My other thought is to return an object and pass a datatable if the connection succeeds or the exception if the connection fails.
For error messages, validation faults etc you have
ModelState.AddErrorMessage("Fool!");
But, where do you put success responses like "You successfully transfered alot of money to your ex." + "Your balance is now zero". I still want to set it at the controller level and preferably in key-value way, the same way as errormessages but without invalidating the modelstate.
I am using ASP.Net 4.0, VB.Net, IIS7, and VWD2010 Express. I have a requirement to show UDP messages in a page as they happen on the network. We have devices on our network sending out messages to a specific port (Port 11000 in my example). The page I am trying to create will be loaded by different users to simply see the activity and status of these devices. This is a project I am doing in my free time to try and learn a little more...
I think I found the end of the Internet trying to find examples of this being done, but I can not find anywhere where anybody is actually showing these messages on a page as they become available. There are of course tons of udp server/client examples in VB.Net, C, and so on but they are all console apps, Wondows Forms,
In my app i have a master page that all content pages use. I would like to have a centralized area inside my master page that would handle displaying of error messages. So on my master page I would have the following this is where the content goes So when I would submit a content page, placeholder named "ErrorPlaceHolder" would be found and error would be displayed in the pages "Pre Render" event..I guess. How would I do that?
I have a C# web forms ASP.NET 4.0 web application that uses Routing for URLs for some reason custom errors defined in the system.web section of my web.config is entirely ignored and it will fall back the IIS errors.
This gets entirely ignored
[code]....
This would be a minor inconvenience except that by the fact it falls back to IIS native instead of my application it completely circumvents Elmah logging my 404 exceptions correctly.
After the form has been submitted and processed. When the response is sent to the user, I would like the user to be returned to the bottom of the page.
I have a couple of pages with standard asp.net validation controls such as RequiredFieldValidator etc inside my RadAjaxPanel.As soon as I navigate to another tab in my RadTabStrip the page seems to force validation errors and pretty much "locks" the page even though non of the fields was selected to enter data.Only once all the required fields was entered the page seems to release the "lock" and only then am I able to navigate to another tab / page without even submitting the page.
what might be causing the "lock" and forced validation errors on the page?
I am currently designing an ASP.Net web site where does not required any user login on the page. However, I do need to put an Admin page up along with this web page for my client use to manage the content on the page (e.g.: Change Pictures, Updating News). For security reason, I do not want to include a separate page sit reside in the site, so nobody can even try access to the page [URL]
I am using a wizard control in which I have a next button that has causes validation = true. I also have a checkbox that when changed, in the event handler, I set causes validation = false for the next button. When that button is clicked - I get the following:
Page.IsValid cannot be called before validation has taken place. It should be queried in the event handler for a control that has CausesValidation.