请问一下 System.Web.HttpContext.Current.Request和Request的区别
我在尝试用MVC做一个小项目
请问我在Controller的构造函数里调用Request时为null,
但是调用System.Web.HttpContext.Current.Request能出来值,请问是怎么回事,谢谢。代码如下:
public class SpaceBaseController : Controller
    {
        public SpaceBaseController()
        {
            if (string.IsNullOrEmpty(Common.LoginUserName) == true)
            {
                string url = System.Web.HttpContext.Current.Request.Url.ToString();
                System.Web.HttpContext.Current.Session["url"] = url;
                //不能直接写 Session["url"] = url; Session["url"]为null
                System.Web.HttpContext.Current.Response.Redirect("/member/login");
            }
        }
    }

解决方案 »

  1.   

    两者是一样的。无非的用的地方不对!
    SpaceBaseController : Controller
    详情看命名空间
      

  2.   

    这是Controller的代码,ControllerContext没被赋值之前,Controller的HttpContext属性是也null
    public HttpRequestBase Request
    {
        get
        {
            if (this.HttpContext != null)
            {
                return this.HttpContext.Request;
            }
            return null;
        }
    }public HttpContextBase HttpContext
    {
        get
        {
            if (base.ControllerContext != null)
            {
                return base.ControllerContext.HttpContext;
            }
            return null;
        }
    }public ControllerContext ControllerContext { get; set; }
      

  3.   

    看一下mvc下的Request全名,mvc下也可以request到的,仔细检查一下
      

  4.   


    我大概明白了 我是在构造函数里写的Request 还没有赋值,所以为null
      

  5.   

    我还有个问题 
    见此链接
    http://topic.csdn.net/u/20110519/10/9710036f-bf56-4e4c-b4f6-44411f860cad.html我想实现如下功能
    MVC.NET的项目中,如何在控制器的构造函数里跳转到其他页面
    例如,我想验证是否登录,如果没有,跳转到登录页