【发布时间】:2015-08-28 15:47:18
【问题描述】:
我的页面上有几个 asp 验证控件。我的页面上有一个 asp.net 按钮,可以保存页面上的所有内容。
在按钮的 OnClick 服务器端事件中,我是否应该始终将其包装在(如果 Page.IsValid)语句中?
看来验证仍然有效?还是只有客户端验证有效?
【问题讨论】:
-
你能展示一些代码吗?为什么不调用特定验证器的 IsValid 方法而不是通用的 Page.IsValid?
我的页面上有几个 asp 验证控件。我的页面上有一个 asp.net 按钮,可以保存页面上的所有内容。
在按钮的 OnClick 服务器端事件中,我是否应该始终将其包装在(如果 Page.IsValid)语句中?
看来验证仍然有效?还是只有客户端验证有效?
【问题讨论】:
默认情况下,验证将在Page_Load 事件之后由您的按钮触发。
另外,Page.IsValid 在调用 Page.Validate() 后也有意义。请注意,后者在几种情况下会自动发生。
您的问题可以得到更深入的回答,但我不会详细介绍,因为许多其他人已经涵盖了这个主题。您可以继续阅读this 其他 SO 问题。
【讨论】:
Page.Validate 会自动调用,但在某些情况下,您最好在自己的代码中调用该方法。调用Page.Validate()方法触发服务端验证。
然后您需要检查Page.IsValid 属性以了解是否存在任何验证错误。
然后由您决定是要分页继续处理还是只返回该页面。
如果您不检查属性并更改流程,则将执行事件处理代码。
您可以通过在浏览器中禁用 JavaScript 然后提交表单来自行确定是否正在执行服务器端验证。这将绕过客户端验证。
【讨论】: