什么HttpContext.Current.Request [“CarName”]!= null,它在做什么?

时间:2013-09-05 00:28:04

标签: c# .net

我正在修改代码主题但却没有得到它。我当时认为HttpContext.Current.Request是只读的,它会返回请求的网址。我们可以像变量或会话变量一样设置HttpContext.Current.Request["CarName"]的值吗?

请指导我这行做什么。

编辑:

if (HttpContext.Current.Request["CarName"] != null){
}

2 个答案:

答案 0 :(得分:0)

Request对象上的索引器方法在KeyValuePair个成员中查找Request个。重要的是要注意Request是一个完整的对象..而不仅仅是一个URL。

ILSpy将此显示为索引器方法的实现:

public string this[string key]
{
    get
    {
        string text = this.QueryString[key];
        if (text != null)
        {
            return text;
        }
        text = this.Form[key];
        if (text != null)
        {
            return text;
        }
        HttpCookie httpCookie = this.Cookies[key];
        if (httpCookie != null)
        {
            return httpCookie.Value;
        }
        text = this.ServerVariables[key];
        if (text != null)
        {
            return text;
        }
        return null;
    }
}

因此,您的代码行正在检查“CarName”是否包含在KeyValuePair对象的上述任何Request成员中的密钥。

答案 1 :(得分:0)

请参阅HttpContext.Request.Item(查找x[]语法时,查找x.Item):

  

QueryString 表单 Cookie ServerVariables 集合中获取指定的对象。

如果某个来源中找不到具有给定键的值 ,则会返回null。在这种情况下,“CarName”可能是在有效请求中提供的(例如../search?CarName=Rusty),因此条件可能会检查“无搜索条件”。

与使用会话相同! Sessions为每个会话提供关联数据的通用机制(但可以由直接cookie支持)。在任何情况下,永远不要直接信任从客户端获取的用户数据,因为它可能是欺骗性的。