/// <summary> /// PreRenderイベントハンドラ。 /// /// Transaction==trueなら、Page内のTokenコントロールを再帰的に検索して、 /// Tokenがあれば、NavigateUriに付加する。 /// </summary> /// <param name="e">イベント引数</param> protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); if (Transaction) { Token token = ControlHelper.FindControl(typeof(Token), Page) as Token; if (null != token) { NavigateUrl = UriBuilderEx.RemoveQueryString(NavigateUrl, token.ID); NavigateUrl = UriBuilderEx.AddQueryString(NavigateUrl, token.ID, token.Value); } } }
protected void Page_Load(object sender, EventArgs e) { Thread.Sleep(rand.Next(5000)); //Test.ExUriBuilder UriBuilderEx urib1 = new UriBuilderEx("http://localhost/app/test.aspx?aaa=bbb&ccc=ddd"); urib1.AddQueryString("eee", "エフエフエフ"); Debug.WriteLine("(1) " + urib1); UriBuilderEx urib2 = new UriBuilderEx("http://localhost/app/test.aspx?aaa=bbb&ccc=%E3%83%87%E3%82%A3%E3%83%BCD"); urib2.RemoveQueryString("aaa"); Debug.WriteLine("(2) " + urib2); urib2.RemoveQueryString("eee"); Debug.WriteLine("(3) " + urib2); }