我最近一直在使用webforms查看是否可以使用其中一个(路由)项目。到目前为止,它只是麻烦,但我几乎到了“工作”的程度
我做了一个页面“Test.aspx”。在Global.asax,我这样做是为了在/test
而不是/Test.aspx
提供服务。这完全有效。它来自我的自定义页面类。自定义类在页面中查找HtmlForms并使用正确的值重写其Action属性:/test
。
现在我点击了名为Viewstate和ASP.Net事件的大砖墙。我使用OnClick处理程序向Test.aspx添加了一个按钮。我可以单击按钮,页面将回发等,但不会发生OnClick事件。我不明白一个简单的URL更改如何打破像这样的viewstate,因为我没有看到Viewstate会跟踪这样的事情。此外,即使HttpMethod == true,IsPostback也将为false。这对我没有任何意义。
另外,我已经禁用了EventValidation,因为我认为这很麻烦,但这个问题仍然存在。
如何在重写网址时让viewstate和postback像往常一样工作?
(注意,我的URL重写形式会在内部进行所有重写,从不会向用户发送HTTP重定向)
答案 0 :(得分:0)
您可能需要告诉HttpContext也正在重写URL。
尝试做这样的事情:
HttpContext.Current.RewritePath("/test");
答案 1 :(得分:0)
IsPostBack用于检查请求是否来自页面本身的控制。
HttpMethod用于检查请求类型。