zoukankan      html  css  js  c++  java
  • url重写以后保持postback地址

    让所有页面集成一下类即可实现url重写以后保持postback地址

    using System;
    using System.Web;
    using System.Web.UI;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Configuration;

    namespace BLL
    {
        /// <summary>
        /// PageBase 的摘要说明。
        /// </summary>
        public class PageBase : Page
        {
            private static object obj = new object();
            //// <summary>
            ///  重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。http://www.svnhost.cn/
            /// </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);
            }
        }

        public class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
        {
            public FormFixerHtml32TextWriter(TextWriter writer)
                : base(writer)
            {
            }

            public override void WriteAttribute(string name, string value, bool encode)
            {
                // 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
                if (string.Compare(name, "action", true) == 0)
                {
                    value = HttpContext.Current.Request.RawUrl;
                }
                base.WriteAttribute(name, value, encode);
            }
        }


        public class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
        {
            public FormFixerHtmlTextWriter(TextWriter writer)
                : base(writer)
            {
            }

            public override void WriteAttribute(string name, string value, bool encode)
            {
                if (string.Compare(name, "action", true) == 0)
                {
                    value = HttpContext.Current.Request.RawUrl;
                }

                base.WriteAttribute(name, value, encode);
            }
        }
    }

  • 相关阅读:
    osgEarath中elevation的tms切片写法
    3D数据格式
    osgearth调试源码无法打断点问题解决
    在软件中无法选择已经安装字体的解决方案
    [vb+mo] visual baisc 6.0 基于mapobjects 2.4 开发的数字化校园电子地图
    编译osg的vrml插件
    安全漏洞之grafanacve_2021_43798
    apk反编译工具dex2jar
    磁盘空间告急
    WEB漏洞扫描工具之OWASP ZAP
  • 原文地址:https://www.cnblogs.com/SALIN/p/1641301.html
Copyright © 2011-2022 走看看