URL重写后,在有页面回发时的处理

-

  URL重写后,在有页面回发时门路就恢复为静态的门路,这个有几个处理方法:

  (1)经过客户端代码清除form的action。

  关于ASPX页面,我们在客户端检查代码时会发明,它主动为form参与了action,而且地址就是扫尾所说的原始页面地址。而关于ASPX页面,若当它的action为空时也就将回发到以后地址。如许我们便可以经过在客户端清除action的方法,来完成回发后继续保持有地址。

  在页面中参与以下代码便可:

  

  这个方法是最好的处理计划。

  (2)自己定义一个Actionlessform类,在aspx中不再应用系统供给的form 标记

  namespace ActionlessForm

  {

  public class Form : System.Web.UI.HtmlControls.HtmlForm

  {

  protected override void RenderAttributes(HtmlTextWriter writer)

  {

  writer.WriteAttribute("name", this.Name);

  base.Attributes.Remove("name");

  writer.WriteAttribute("method", this.Method);

  base.Attributes.Remove("method");

  this.Attributes.Render(writer);

  base.Attributes.Remove("action");

  if (base.ID !=null)

  writer.WriteAttribute("id", base.ClientID);

  }

  }

  }

  创立此类并对其停止编译以后,要在 ASP.NET Web 应用依次中应用它,应起首将其添加到 Web 应用依次的 References 文件夹中。然后,要 应用它来替换 HtmlForm 类,做法是在 ASP.NET 网页的顶部添加以下内容:

  <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

  然后,将

(假设有)交换为:并将左边的 标记交换为:

猜你喜欢