FormRewriterControlAdapter.cs
public class FormRewriterControlAdapter : System.Web.UI.Adapters.ControlAdapter
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
base.Render(new RewriteFormHtmlTextWriter(writer));
}
}
public class RewriteFormHtmlTextWriter : HtmlTextWriter
{
public RewriteFormHtmlTextWriter(HtmlTextWriter writer)
: base(writer)
{
this.InnerWriter = writer.InnerWriter;
}
public override void WriteAttribute(string name, string value, bool fEncode)
{
if (name == "action")
{
HttpContext Context;
Context = HttpContext.Current;
if (Context.Items["ActionAlreadyWritten"] == null)
{
value = Context.Request.RawUrl;
Context.Items["ActionAlreadyWritten"] = true;
}
}
base.WriteAttribute(name, value, fEncode);
}
}
web.config
<rewriter>
<rewrite url="/WebSite3/Product/(.+)" to="/WebSite3/Product.aspx?category=$1" />
</rewriter>
in App_Browser folder
Form.Browser file
<browsers>
<browser refid="Default">
<controladapters>
<adapter controltype="System.Web.UI.HtmlControls.HtmlForm">
adapterType="FormRewriterControlAdapter" />
</adapter>
</controladapters>
</browser>
</browsers>