我想知道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);
}
}
}