我很想知道具体的Page.IsPostBack意味着什么.我完全了解它在标准ASP.NET页面中的日常使用,它表明用户正在将数据提交回服务器端.请参见Page:IsPostBack属性
但鉴于此HTML
<html>
<body>
<form method="post" action="default.aspx">
<input type="submit" value="submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
单击"提交"按钮时,将调用页面Page_Load方法,但Page.IsPostBack返回false.我不想补充runat=server
.
如何判断首次加载的页面与客户端提交的请求之间的区别?
更新
我已添加,<input type="text" value="aa" name="ctrl" id="ctrl" />
所以Request.Form有一个元素,Request.HTTPMethod是POST,但IsPostBack仍然是假的?
tva*_*son 12
检查Request.Form集合以查看它是否为非空.只有POST才会在Request.Form集合中包含数据.当然,如果没有表单数据,则该请求与GET无法区分.
对于标题中的问题,当请求是来自服务器端表单控件的POST时,IsPostBack设置为true.只使你的表单客户端失败了.
一种方法是扩展ASP.NET Page类,"覆盖"IsPostBack属性,并让所有页面都从扩展页面派生.
public class MyPage : Page
{
public new bool IsPostBack
{
get
{
return
Request.Form.Keys.Count > 0 &&
Request.RequestType.Equals("POST", StringComparison.OrdinalIgnoreCase);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15603 次 |
最近记录: |