关于上述文章的类似主题,但更具体的说明。您如何处理视图状态中的项目(因此它们包含在提交中),但也可以通过AJAX进行更改。例如,假设我们有一个通过AJAX Web服务调用(而不是更新面板)填充的下拉列表。下拉列表的项目更改后,如何让页面验证?
发布于 2019-03-04 08:38:36
你没有验证下拉列表吗?您正在验证用户选择的值。它与其他帖子的建议几乎相同,因为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.
}
一些进一步阅读的链接:
发布于 2019-03-04 10:36:12
你可以从你的javascript代码调用Page_Validate()函数,它会触发页面上的asp.net验证器,它基本上类似于服务器代码中的Page.Validate()
https://stackoverflow.com/questions/-100000991
复制相似问题