Url重写之action改变的问题
来源:互联网 发布:网络中立与言论自由权 编辑:程序博客网 时间:2024/04/30 16:08
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);
}
}
}
<%@ Register TagPrefix="skm" Namespace="ActionlessForm"
Assembly="ActionlessForm" %>
然后,将 <form runat="server">(如果有)替换为:
<skm:Form id="Form1" method="post" runat="server">
并将右边的 </form> 标记替换为:
</skm:Form>
---或者
using System;
using System.IO;
using System.Web;
using System.Web.UI;
namespace URl
{
/**//// <summary>
/// 页面基类
/// </summary>
public class OLPage : Page
{
public OLPage()
{
}
/**//// <summary>
/// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实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);
}
}
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);
}
}
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);
}
}
}
- Url重写之action改变的问题
- Url重写之action改变的问题
- Url重写之action改变的问题
- URL重写中,重写Form的Action属性。
- Magento的URL重写问题
- Magento的URL重写问题
- struts的Action里,跳转和重写URL带参数
- URL重写 时遇到的问题
- 关于URLRewriter重写URL的问题...
- IIS下的URL重写无效问题
- url重写可能存在的性能问题
- THNIKPHP URL重写不成功的问题
- URL重写之ISAPI_Rewrite的应用
- Url重写之我的最终总结
- Url重写问题????
- URL重写问题
- URL重写问题
- URL重写问题
- long和DWORD的一个压缩算法
- [积累]遍历目录下的全部文件
- 在Delphi中调试编写的ASP组件
- MSMQ.PATH的一些问题
- 第8回 测试的三维空间
- Url重写之action改变的问题
- 关于管理培训的一点心得记录
- URL 重写就是把URL地址重新改写(汗^_^)。
- C#中处理和键盘相关的事件
- URL重写实现IHttpHandler接口
- URL重写实现IHttpHandler接口---网站的简、繁转换
- 谁能帮我解决一下这个问题
- 陆续走进JAVA世界
- 屏蔽网页源代码