繁体   English   中英

必填字段的服务器端验证

[英]Server side validation for required fields

我遇到了 requiredfieldvalidator 控件在 ASP.net 页面上不起作用的问题。 我已经正确完成了该字段的属性,但是当我对其进行测试时,即使相关字段为空白,也允许回发。

所以我想做服务器端验证。 最好的方法是什么? 如果导致回发? 此外,如果我发现该字段为空白,我如何让用户返回屏幕,而他们放置在其他字段上的所有其他值都完好无损,并显示“此字段不能为空白”的消息。

编辑:

这是代码:

<asp:TextBox ID="fName" TabIndex="1" runat="server" Width="221px" CausesValidation="True"></asp:TextBox>
<asp:RequiredFieldValidator ID="FNameRequiredFieldValidator" runat="server"
        ControlToValidate="fName" InitialValue="" ErrorMessage="Filter Name cannot be blank."
        ToolTip="Filter Name cannot be blank.">*</asp:RequiredFieldValidator>

尝试从TextBox中删除CauseValidation属性并从验证器默认值中删除InvalidValue就可以了。

服务器端验证在Page_Load之后运行并控制事件。 如果您使用所需的验证器,则无需编写任何额外代码。

Button_Click事件中只需检查this.Page.IsValid标志。

您能否发布与验证器相关的代码的 html 部分和要验证的文本框。 蝙蝠听起来就像您缺少验证器的 ControlToValidate 属性。 您还可以使用页面 class 的 IsValid 属性来测试页面验证是否通过。

这功能齐全。

<asp:TextBox ID="TextBox1" runat="server" />;

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="*" />

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

首先,发布您的 requiredfieldvalidator 的代码,因为您显然做错了什么。

但是,最好同时检查客户端和服务器端,所以我会回答你的另一个问题。

我通常在回发的事件处理程序中检查有效性。 您可以在此处设置 Label 的值以指示故障。 由于这是回发,所有字段中的值都应保持输入时的状态。

Remove InitialValue="" 

在文本框上使用它的唯一原因是如果你有一些默认文本(如“输入值”或类似的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM