我想知道page.ispostback的具体含义。我完全知道它在标准的asp.net页面中的日常使用,它表示用户是
将数据提交回服务器端。见Page:IsPostBack Property
但是考虑到这个html

<html>
   <body>
      <form method="post" action="default.aspx">
         <input type="submit" value="submit" />
      </form>
   </body>
</html>

单击“提交”按钮时,将调用pages page_load方法,但page.ispostback将返回false。我不想添加runat=server
如何区分第一次加载的页面和客户端点击submit引起的请求之间的差异?
更新
我在<input type="text" value="aa" name="ctrl" id="ctrl" />中添加了request.form有一个元素,request.httpmethod是post,但ispostback仍然是false?

最佳答案

一种方法是扩展asp.net页面类,“重写”ispostback属性,并让所有页面从扩展页面派生。

public class MyPage : Page
{
    public new bool IsPostBack
    {
        get
        {
          return
            Request.Form.Keys.Count > 0 &&
            Request.RequestType.Equals("POST", StringComparison.OrdinalIgnoreCase);
         }
    }
}

09-06 05:29