自定义的HttpHandler
我是使用的方法是在页面下添加<script type="text/javascript"> try { document.forms[0].action = "" } catch (ex) {alert(ex.Message); }</script> 
但是,在首页回发后,页面无法显示,
VisualStudio2010自带的“开发服务器”直接挂死然后自动关闭了断点显示的问题是,页面显示不是回发 即IsPostBack属性为false
但是到了首页的用户控件里面IsPostBack属性为true,可是为true,你就为true吧,但是控件的数据却又要重新加载?而我把重新加载的数据都写在if(!IsPostBack)
{
    Items= MainNavigation.GetItems();
}
//Items是用户控件的属性,回发时报错Items为null,未将对象设置为引用

解决方案 »

  1.   

    哦,对了,我是回发到本页面
    比如我原来的页http://localhost:1089/Index回发还是这个目的地址
      

  2.   

    需要回发的页面继承这个类~
    public partial class _Default : URL.OLPageusing System;
    using System.IO;
    using System.Web;
    using System.Web.UI;namespace URL
    {
        public class OLPage : Page
        {
            public OLPage()
            { }
            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)
            {
                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);
            }
        }}
      

  3.   

    我想说一下,我回发后地址是对的,没出任何问题只是服务器那边的用户控件的属性的值都为null了,这是怎么回事,是不是HttpHandler里面要对回发请求做额外的处理
      

  4.   

    这是我的另一个号,为了帮助其他人http://topic.csdn.net/u/20081015/20/d8b6a5b9-e782-4e07-b5e2-74a7d320fcf6.html
    看我在14楼发表的
    恍然大悟 其实这并不是URL重写的问题