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
