this.QueryString(NameValueCollection)访问Form1 - 来自另一个类

时间:2012-09-28 00:38:54

标签: c# class asp.net-4.0

我已经使用它来修改查询字符串,用于测试和调试

现在唯一的问题是我想把它作为我的一个班级 C#collection helper-class

该方法现在工作正常,但因为我仍然是“新鲜的”.net开发人员

我无法弄清楚如何使用 this.Request.QueryString访问当前partial class - 表单(form1) 当它在一个独立的公共静态或非静态类中时的值

这是代码,您可以自由使用它(:

public void QsModify(string action, string NewP_Value, string CurQS_ParamName, string         NewQs_paramName=null, bool redirectWithNewQuerySettings=false)
{

#region <<=========== reflect to readonly & set QueriString ReadOnly - false ============>>





// reflect to readonly property 
PropertyInfo isReadOnly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);

// make collection editable 
isReadOnly.SetValue(this.Request.QueryString, false, null);

#endregion
switch (action)
{
    case ModAQs_Remove:
        if (notEmptyQs()) 
        this.Request.QueryString.Remove(CurQS_ParamName);
        break;
    case ModAQs_Replace:
        this.Request.QueryString.Remove(CurQS_ParamName);
        this.Request.QueryString.Add(NewQs_paramName, NewP_Value);
        break;
    case ModAQs_EditValue:
        this.Request.QueryString.Set(CurQS_ParamName, NewP_Value);
        break;

    case ModAQs_Add:
        this.Request.QueryString.Add(NewQs_paramName, NewP_Value);
        break;

}


#region <<=========== joining Full Path & queryString then Redirection  ============>>


string seperator = "?";
UrlPath = Request.Url.AbsolutePath;
UrlPathAndQuery = string.Join(seperator, UrlPath, this.Request.QueryString);
isReadOnly.SetValue(this.Request.QueryString, true, null);

if (redirectWithNewQuerySettings)
{

    Response.Redirect(UrlPathAndQuery);
}
#endregion
}

如何将其变成一个能够访问我正在处理的任何项目的类 不知道表格名称是什么

1 个答案:

答案 0 :(得分:1)

您可以使用

HttpContext.Current.Request.QueryString["qs_key"];

您可以在静态或非静态上下文中使用它。