Web Forms :: Reference Global.asax Variable In Page?
Apr 27, 2010
I have a ASP.NET/C# web application. There is an object instantiated in the Global.asax that I'll call g_objVariable. What I would like to do is reference one of it's properties in the ASP.NET page itself, like this.
The g_objVariable's Prop1 value is: <%=AppNameSpace.Global.g_objVariable.Prop1.ToString()%>
I get it to see the reference, but it keeps telling me that due to it's protection level I can't access it. I have it set to 'internal static'. What would be the least level I could set it to, but still allow the page to access it?
I know there is a couple answered questions on here regarding "request scoped" globals, but I want to nit-pick on something specifically and maybe squeeze some extra enlightenment out of one or two of you.I have an ASP.NET C# Website and a static Dictionary of objects (loaded from DB once on Application start). Each page request will need to do a lookup in the Dictionary (based on a key derived from the request url/etc) and get the appropriate object.The issue is I'm trying to maximize efficiency by reducing the lookups to the Dictionary per Request. Doing just a single lookup within a Page itself is easy enough and I can pass the object to sub controls, etc too.. but global.asax is separate from the Page and it also needs to use the object (in Application_BeginRequest and Session_Start).
So is doing a Dictionary lookup once in Application_BeginRequest, once (when necessary) in Session_Start and once in the Page negligible speed wise, even if there are many requests coming in every second?I would like it if I could just have a Request scoped global variable that I can easily call upon.. the only one I see available though is HttpContext.Current.Items and that is a Dictionary itself.Am I beingridiculously nit-picky with my concern over efficiency? or will these milliseconds (nanoseconds?) get me in the long run when more and more requests are being made?
PS. I currently only have around 100 objects in the Dictionary although this may increase in the future.
I am have declared a session variable in login page of my application. I want to access that session variable in Application_BeginRequest of global.asax file. But I am not able to do it. Could you please suggest how to access the session variable in my global.asax file
I'm getting a very peculiar problem with my asp.net application, it took me an age to track down but I still don't know what is causing this behaviour.
If I set a session variable in the Application_PreRequestHandlerExecute event, then my external JavaScript files are ignored, and therfore causing a raft of errors. I have simplified the problem below.
E.g.
I have file called JScript.js containing the code:
function myAlert() { alert("Hi World"); }
And in my Default.aspx file I reference the js with the code:
And in the body onload event I call the myAlert() function:
<body onload="myAlert()">
And finally in the Global.asax file:
Private Sub Application_PreRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs) HttpContext.Current.Session("myVar") = "MyValue" End Sub
If you run the Default.aspx file you will see the js function isnt called, however, if you comment out the line of code Global.asax then the external js is called and the function executed when the page loads.
I want to insitate a class instance in the session start of the application. code below
if (Session["user"] != null)
Session["user"] = new user();
I have created the "user" class as a separte dll and referenced and imported the namespace.But still i get 'are u missing assembly reference' it is not problem in 1.1 but seems has a problem in 2.0
My website needs hit counter. i have created hit count in global.asax page, which works fine. Now i wanted to display hit count in all pages. so, do i have to use mater page or function to all in every page.
I added the following code to global.asax to load up several session variable when a session starts. I'm assuming that when a page goes to use the variable that I should be
1) checking at the page level that the value is valid not 0 when its not expected to be 0, not a zero-length string when its expected to have a length
2) have code at the page level that sets the values if the values have not been set as when the Session timeout, ideally putting the code in a class derived from Page and then deriving all of my pages from the new class so that the code does not have to be repeated in every page
my objective is i want to log all those exceptions on my aspx pages which are handled or unhandled. To do this do i need to write my method in global.asax or how can i do that?
I have an ASP.NET application where i am tracking my applicaion level erros using golabl.asax On_Error method.I will send an email to my id when there is some error happened in the site(ie :" when the application _error being invoked) Now From my global.asax's Application_OnError event, how can i get the URL of the page where this error was raised ?
I am categorizing my website page to be defined as Secured & unsecured (ie few page on http & other on https) in Global.asax. Now, Product.aspx page has to be defined as unsecured. But I just couldn't make out how to define this since it is called with a querystring. If I simply define it as "Product.aspx", output is coming incorrect ie I need to define it as "Product.aspx?pid=123". But since there are lot many products, so I couldn't define it like this.
When it gets to the page servererror/default.aspx I need it to send an e-mail to me with the exception.message
Here's what i'm trying but it won't work
Sub Page_load(ByVal sender As Object, ByVal e As EventArgs) Dim LastError As Exception Dim ErrMessage As String LastError = Server.GetLastError() ErrMessage = LastError.Message
I'm wanting to adjust this code to pull the theme name from a database table, instead of just manually assigning a theme in the file. This way a site administrator can set the theme dynamically. If never done this with a global.asax file, so I'm not sure what the best way is to accomplish it?
Here's the code that needs tweaked:
[Code]....
The database table could be "ThemeName" with rows ID & Theme. If performing this in the global.asax file will cause any big performance issues.
Can I call Initialize Culture of every page from the Global.asax?
Every page looks at the query string of "?lang=##" and sets the language accordingly. Since all pages do this, is there a place where I can implement it once and all pages will load it?
My site has around 200 pages and I dont want to implement the code in everypage. Would take too long for maintenance and to implement. It would be more convinient if I could simply put it in a function that all pages call when loading.
Looking for best practice focused answers here with explanations.
Should the presentation layer of an ASP.Net app catch and handle exceptions thrown from the business layer, or should these be allowed to bubble out, where they can all be logged and handled uniformly in the Global.ascx's Application_Error handler?
I've began working with asp.net mvc very recently and I've ran into a problem.I've got an aspx page which renders a few ascx pages. What I'd like to do is declare a global var at the aspx page so it is visible to all its childs. I tried <% var i = 0; %> but it wasn't visible at the child pages. What could I do?
How do I need get the variable in the master page?
1. after Login.aspx get the information of the user 2. redirect to home.aspx 3. in home.aspx, view the info like Label1.text ="Welcome " + varUser; 4. Label1 is located in the master page 5. this varUser will display in all my pages 6. I don't want to use the full Session["var"] (because of expiration)
*in short I just want to get the var in the master page everytime I load a new page (WITH MULTIPLE UNIQUE USERS)
I am using a Global.asax in on my webpage to run a function with an interval. In this test I have set the interval to 1 minute to be able to see what happens.
I have declared a timer in the Application Start which should mean that when I open up the webpage after I have uploaded the Global.asax the timer will start.
However with this code below where I try to create a file named newFile.txt, this file is not created. I cant really understand what I could be missing. It seems that the function is not running ?
I have a Global.Asax and Global.Asax.cs file that is specific to my particular Asp.net project. For some unknown reason the code in my Global.asax.cs file is not being executed. I thought that the breakpoints were being ignored, however that is not the case. Because if I try to deliberately force an error to occur, the code is never executed. Below is an example of what I am talking about. The real code in my Application_Start method is not shown below. ANd other methods are not shown as well.
I have tried renaming the Global.asax file and then re-creating it, and that did not work either. Strange because when I try and create a new Global.asax file, the option to create a code behind file is greyed out.
Why isn't my Global.Asax.cs code being executed?
private void Application_Start(object sender, EventArgs e) { int x = 1; int y = 1; int z=1/(x-y) }