即使Request.HttpMethod是“POST”,IsPostback = false?

时间:2011-03-25 01:46:40

标签: asp.net routing url-rewriting viewstate

我最近一直在使用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重定向)

2 个答案:

答案 0 :(得分:0)

您可能需要告诉HttpContext也正在重写URL。

尝试做这样的事情:

HttpContext.Current.RewritePath("/test");

答案 1 :(得分:0)

IsPostBack用于检查请求是否来自页面本身的控制。

HttpMethod用于检查请求类型。

相关问题