Access to the Request object in System.Web.UI.Page derivative...

  • Thread starter Thread starter Terry Mulvany
  • Start date Start date
T

Terry Mulvany

namespace CIBWeb
{
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
}

protected override void OnInit(EventArgs e)
{
THIS NEXT LINE THROWS EXCEPTION ALSO, CANNOT USE
HttpContext.Current.Request.QueryString["sc"] != string .Empty
if (
HttpContext.Current.Request.Cookies["source_code"].Value.ToString() !=
string.Empty )
{
...
}
...
}
}
}

YIELDS THIS ERROR ...


Server Error in '/CIBWeb' Application.
----------------------------------------------------------------------------
----

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.

Source Error:


Line 64: // no other source code overrides it. ex: user clicks url in
email (email campaign) and then once on the site clicks on a ad banner
(which has
Line 65: // it's own source code), the first source code should still be
the one used
Line 66: if (
HttpContext.Current.Request.Cookies["source_code"].Value.ToString() !=
string.Empty )
Line 67: {
Line 68: SourceCode =
HttpContext.Current.Request.Cookies["source_code"].Value.ToString();


Source File: c:\inetpub\wwwroot\cibweb\src\basepage.cs Line: 66

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an
object.]
CIBWeb.BasePage.OnInit(EventArgs e) in
c:\inetpub\wwwroot\cibweb\src\basepage.cs:66
CIBWeb.HealthWellness._Default.OnInit(EventArgs e) in
c:\inetpub\wwwroot\CIBWeb\HealthWellness\Default.aspx.cs:74
System.Web.UI.Control.InitRecursive(Control namingContainer)
System.Web.UI.Page.ProcessRequestMain()

ANY IDEAS?
 
I believe your problem exists when you have no cookie / querystring present.
You can also perform other checks like HasKeys or Count.
Try retrieving your values with a helper method:

public string getCookie(string strCookie)
{
string cookieValue="";
try
{
cookieValue= Request.Cookies[strCookie].Value;
}
catch(Exception)
{
cookieValue="No Value";
}
return cookieValue;
}

Response.Write(getCookie("source_code"));

-Brian K. Williams
 
Thanks. I had an epiphany and fixeed this about half an hour ago.
I am just testing for null first.

Brian K. Williams said:
I believe your problem exists when you have no cookie / querystring present.
You can also perform other checks like HasKeys or Count.
Try retrieving your values with a helper method:

public string getCookie(string strCookie)
{
string cookieValue="";
try
{
cookieValue= Request.Cookies[strCookie].Value;
}
catch(Exception)
{
cookieValue="No Value";
}
return cookieValue;
}

Response.Write(getCookie("source_code"));

-Brian K. Williams

Terry Mulvany said:
namespace CIBWeb
{
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
}

protected override void OnInit(EventArgs e)
{
THIS NEXT LINE THROWS EXCEPTION ALSO, CANNOT USE
HttpContext.Current.Request.QueryString["sc"] != string .Empty
if (
HttpContext.Current.Request.Cookies["source_code"].Value.ToString() !=
string.Empty )
{
...
}
...
}
}
}

YIELDS THIS ERROR ...


Server Error in '/CIBWeb' Application.
--------------------------------------------------------------------------
--
----

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.

Source Error:


Line 64: // no other source code overrides it. ex: user clicks url in
email (email campaign) and then once on the site clicks on a ad banner
(which has
Line 65: // it's own source code), the first source code should still be
the one used
Line 66: if (
HttpContext.Current.Request.Cookies["source_code"].Value.ToString() !=
string.Empty )
Line 67: {
Line 68: SourceCode =
HttpContext.Current.Request.Cookies["source_code"].Value.ToString();


Source File: c:\inetpub\wwwroot\cibweb\src\basepage.cs Line: 66

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an
object.]
CIBWeb.BasePage.OnInit(EventArgs e) in
c:\inetpub\wwwroot\cibweb\src\basepage.cs:66
CIBWeb.HealthWellness._Default.OnInit(EventArgs e) in
c:\inetpub\wwwroot\CIBWeb\HealthWellness\Default.aspx.cs:74
System.Web.UI.Control.InitRecursive(Control namingContainer)
System.Web.UI.Page.ProcessRequestMain()

ANY IDEAS?
 
Back
Top