必填字段的服务器端验证

时间:2011-08-16 12:56:47

标签: c# asp.net

我遇到了一个问题,即在ASP.net页面上没有工作的requiredfieldvalidator控件。我已经正确完成了该字段的属性,但是当我测试它时,即使相关字段为空,也允许回发。

所以我想做服务器端验证。最好的方法是什么?如果导致回发?此外,如果我发现该字段为空白,如何让用户返回到屏幕,其中包含其他字段的所有其他值,并且显示“此字段不能为空”的消息。

编辑:

这是代码:

<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>

4 个答案:

答案 0 :(得分:1)

尝试从CauseValidation中移除TextBox属性,并从验证程序默认值中InvalidValue正常工作。

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

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

答案 1 :(得分:0)

您是否可以发布与验证器和文本框相关的代码的html部分进行验证。蝙蝠听起来就像你错过了验证器的ControlToValidate属性。您还可以使用页面类的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" />

答案 2 :(得分:0)

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

但是,检查客户端和服务器端都很好,所以我会回答你的其他问题。

我通常在回发的事件处理程序中检查有效性。您可以在那里设置Label的值以指示失败。所有字段中的值应保持原样,因为这是回发。

答案 3 :(得分:0)

Remove InitialValue="" 

只有在文本框中使用它的理由是,如果你有一些默认文本(例如“输入一个值”,或者其他一些)。