【问题标题】:ASP.NET Page ValidationASP.NET 页面验证
【发布时间】:2010-09-17 09:14:51
【问题描述】:

Related Article

关于与上述文章类似的主题,但有更具体的说明。您如何处理视图状态中的项目(因此它们包含在提交中),但也可以通过 AJAX 进行更改。例如,假设我们有一个通过 AJAX Web 服务调用(不是更新面板)填充的下拉列表。更改下拉列表的项目后,如何让页面进行验证?

【问题讨论】:

    标签: asp.net ajax validation


    【解决方案1】:

    您没有验证下拉列表是吗?您正在验证用户选择的值。这与其他帖子的建议几乎相同,因为 javascript 或其他工具可以更改 html 或创建自己的 POST,您必须始终在服务器端进行验证。假设所有客户端请求都可以被篡改,并假设没有发生客户端验证。


    如果您使用的是网络表单模型 ....

    如果您只想检查在下拉列表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.
    }
    

    一些进一步阅读的链接:

    【讨论】:

      【解决方案2】:

      你可以从你的javascript代码中调用Page_Validate()函数,它会触发页面上的asp.net验证器,它基本上类似于服务器代码中的Page.Validate()

      【讨论】:

        【解决方案3】:

        为什么即使在下拉列表中也不验证 onChange?

        只需添加脚本管理器并将该属性添加到 Page_Load 事件中的 onchange

        ' 创建 javascript 函数来验证 将 js 调暗为字符串 js = "函数 validateDDL1(ddl) { alert(ddl.value); }" ' 添加 onChange javascript 方法 DropDownList1.Attributes.Add("onchange", "validateDDL1(this);") ' 注册 javascript ScriptManager.RegisterClientScriptBlock(我,GetType(字符串),“validateDDL1(ddl)”,js,真)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-01-26
          • 2019-06-08
          • 2010-09-20
          • 1970-01-01
          • 2019-06-22
          • 1970-01-01
          相关资源
          最近更新 更多