yesfabime yesfabime - 2 months ago 16
ASP.NET (C#) Question

Create Cookie ASP.NET & MVC

I have a quite simple problem - I want to create a cookie at a Client, that is created by the server.
I've found a lot of pages that describe, how to use it - but I always stuck at the same point.

I have a DBController that gets invoked when there is a request to the DB.

The DBController's constructor is like this:

public class DBController : Controller
{
public DBController()
{
HttpCookie StudentCookies = new HttpCookie("StudentCookies");
StudentCookies.Value = "hallo";
StudentCookies.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(StudentCookies);
Response.Flush();
}

[... more code ...]

}


I get the Error "Object reference not set to an instance of an object" at:

StudentCookies.Expire = DateTime.Now.AddHours(1)


This is a kind of a basic error message - so what kind of basic thing I've forgot?

Answer

The problem is you cannot add to the response in the controller. The Response object has not been created, so it is getting a null reference, try adding a method for adding the cookie and calling it in the action method. Like so:

private HttpCookie CreateStudentCookie()
{
    HttpCookie StudentCookies = new HttpCookie("StudentCookies");
    StudentCookies.Value = "hallo";
    StudentCookies.Expires = DateTime.Now.AddHours(1);
    return StudentCookies;
}

//some action method
Response.Add(CreateStudentCookie());
Comments