自编程序如下
using system;
using system.web;
using system.web.ui;
namespace hnwl.config
{
/// <summary>
/// cookdef 的摘要说明。
/// cookies相关的定义,以及涉及到cook的一些检验,如用户登录标示
/// </summary>
public class cookdef :page
{
private httpcookie cook;
public cookdef()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public void new(string name)
{
cook=new httpcookie(name);
}
public httpcookie req(string name)
{
cook=request.cookies[name];
return cook;
}
public void append()
{ response.cookies.add(cook);//运行后提示此行出错 }
编译过程未提示错误,但是运行后出现 system.web.httpexception: 响应在此上下文中不可用;将request.cookies[name]和response.cookies.add(cook)改成httpcontext.current.request.cookies[name]和httpcontext.current.response.cookies.add(cook)即恢复正常。
解释:page中的response,request只能在页面文件中使用(尽管上文定义的是cookdef :page,但只是作为普通类使用),而httpcontext可以在任何情况下使用,可获取当前的上下文数据。