具体办法如下:可以通过自定义页面基类,重写默认的HtmlTextWriter方法,重写属性输出WriteAttribute(string name, string value, bool encode)方法,当输出action时,将action属性的值强制转换为当前虚URL(HttpContext.Current.Request.RawUrl,上面的~/showVisasAll_(\w+)\.aspx) 
最后就是让所有的页面都调用这个基类,修改一下Web.config就好了 
<!-- Openlab.Controls.OLPage为页面基类,Openlab.Controls为基类所在dll --> 
<pages pageBaseType="Openlab.Controls.OLPage, Openlab.Controls"/> 
附页面基类完整代码(参考CS代码完成): 
复制代码 代码如下:
 
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> 
/// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。 
/// </summary> 
/// <param></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) 
...{ 
// 如果当前输出的属性为form标记的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 
} 
