Related Article
关于上述文章的类似主题,但更具体的说明.您如何处理视图状态中的项目(因此它们包含在提交中),但也可以通过AJAX进行更改.例如,假设我们有一个通过AJAX Web服务调用(而不是更新面板)填充的下拉列表.下拉列表的项目更改后,如何让页面验证?
解决方法
你没有验证下拉列表吗?您正在验证用户选择的值.它与其他帖子的建议几乎相同,因为javascript或其他工具可以改变html或创建自己的POST,你必须始终在服务器端验证.假设所有客户端请求都可以被篡改,并假设没有发生客户端验证.
如果您正在使用Web表单模型….
如果您只想检查下拉myAjaxDropDown中选择的值,请使用
<asp:RequiredFieldValidator id="dropdownRequiredFieldValidator" ControlToValidate="myAjaxDropDown" Display="Static" InitialValue="" runat=server> * </asp:RequiredFieldValidator>
您还可以查看asp:CustomValidator – 用于服务器端验证:
<asp:CustomValidator ID="myCustomValidator" runat="server" onservervalidate="myCustomValidator_ServerValidate" ErrorMessage="Bad Value" />
两者都插入到asp.net的验证框架中.例如当您单击名为SumbitButton的按钮时
protected void myCustomValidator_ServerValidate(object source,ServerValidateEventArgs e) { // determine validity for this custom validator e.IsValid = DropdownValueInRange(myAjaxDropDown.SelectedItem.Value); } protected void SubmitButton_Click( object source,EventArgs e ) { Validate(); if( !IsValid ) return; // validators pass. Continue processing. }
一些进一步阅读的链接:
> ASP.Net 2.0 Quickstart – Validating Form Input Controls
> ASP.NET Validation Controls – Important Points,Tips and Tricks