欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

    1. asp.net url重寫后頁面回傳問題

       更新時(shí)間:2009年11月11日 00:53:50   作者:  
      最近在做項(xiàng)目時(shí)遇到了URL重寫后當(dāng)頁面回傳時(shí),url又刷回原值;這個(gè)問題困擾了很久,終于找到解決辦法了。
      具體辦法如下:可以通過自定義頁面基類,重寫默認(rèn)的HtmlTextWriter方法,重寫屬性輸出WriteAttribute(string name, string value, bool encode)方法,當(dāng)輸出action時(shí),將action屬性的值強(qiáng)制轉(zhuǎn)換為當(dāng)前虛URL(HttpContext.Current.Request.RawUrl,上面的~/showVisasAll_(\w+)\.aspx)
      最后就是讓所有的頁面都調(diào)用這個(gè)基類,修改一下Web.config就好了
      <!-- Openlab.Controls.OLPage為頁面基類,Openlab.Controls為基類所在dll -->
      <pages pageBaseType="Openlab.Controls.OLPage, Openlab.Controls"/>
      附頁面基類完整代碼(參考CS代碼完成):
      復(fù)制代碼 代碼如下:

      using System;
      using System.IO;
      using System.Web;
      using System.Web.UI;
      namespace Openlab.Controls
      ...{
      /**//// <summary>
      /// 頁面基類
      /// </summary>
      public class OLPage : Page
      ...{
      public OLPage()
      ...{
      }
      Render#region Render
      /**//// <summary>
      /// 重寫默認(rèn)的HtmlTextWriter方法,修改form標(biāo)記中的value屬性,使其值為重寫的URL而不是真實(shí)URL。
      /// </summary>
      /// <param name="writer"></param>
      protected override void Render(HtmlTextWriter writer)
      ...{
      if (writer is System.Web.UI.Html32TextWriter)
      ...{
      writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
      }
      else
      ...{
      writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
      }
      base.Render(writer);
      }
      #endregion
      }
      FormFixers#region FormFixers
      FormFixerHtml32TextWriter#region FormFixerHtml32TextWriter
      internal class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
      ...{
      private string _url; // 假的URL
      internal FormFixerHtml32TextWriter(TextWriter writer):base(writer)
      ...{
      _url = HttpContext.Current.Request.RawUrl;
      }
      public override void WriteAttribute(string name, string value, bool encode)
      ...{
      // 如果當(dāng)前輸出的屬性為form標(biāo)記的action屬性,則將其值替換為重寫后的虛假URL
      if (_url != null && string.Compare(name, "action", true) == 0)
      ...{
      value = _url;
      }
      base.WriteAttribute(name, value, encode);
      }
      }
      #endregion
      FormFixerHtmlTextWriter#region FormFixerHtmlTextWriter
      internal class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
      ...{
      private string _url;
      internal FormFixerHtmlTextWriter(TextWriter writer):base(writer)
      ...{
      _url = HttpContext.Current.Request.RawUrl;
      }
      public override void WriteAttribute(string name, string value, bool encode)
      ...{
      if (_url != null && string.Compare(name, "action", true) == 0)
      ...{
      value = _url;
      }
      base.WriteAttribute(name, value, encode);
      }
      }
      #endregion
      #endregion
      }

      相關(guān)文章

      最新評論