1

テストとデバッグのために、クエリ文字列を変更するためにそれを使用するヘルパーメソッドを作成しました

現在の唯一の問題は、C#コレクションヘルパークラスのクラスとして作成したいということです。

メソッドは現在完全に機能していますが、私はまだ「新鮮な」.net開発者です

分離されたパブリック静的または非静的クラス内にある場合、this.Request.QueryString現在のフォーム(form1)値にアクセスするために使用する方法を理解できませんでした partial class

これはコードです、あなたはそれを自由に使うことができます(:

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
}

フォーム名がわからないまま、作業中のプロジェクトにアクセスできるクラスにするにはどうすればよいですか。

4

1 に答える 1

1

使用できます

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

静的または非静的コンテキストで使用できます。

于 2012-09-28T00:45:57.923 に答える