簡體   English   中英

ASP.NET 2.0中的服務器端驗證

[英]Server-side validation in ASP.NET 2.0

我的應用程序在帶有C#的ASP.NET 2.0中。 我有一個帶有正則表達式^[0-9]*(\\\\,)?[0-9]?[0-9]?$的正則表達式驗證器,現在我的客戶端不希望在客戶端進行此驗證,但是在按鈕上單擊即服務器端。

例如:我必須檢查txtPrice文本框的值

請讓我知道如何將該正則表達式驗證放在服務器端。

提前致謝。

您可以使用CustomValidator來鏈接到服務器端事件:

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" OnServerValidate="CustomValidator1_Validate"></asp:CustomValidator>

然后在服務器端您可以驗證輸入

protected void CustomValidator1_Validate (object source, ServerValidateEventArgs argss)
{}

請記住將您的提交按鈕包裝為

if(IsValid) {}

確保尊重所有驗證者

嘗試將EnableClientScript="false"添加到驗證器。

該控件將始終在服務器端進行驗證,無論您是否還啟用了客戶端驗證。 但是您必須記住在接受回Page.IsValid之前檢查Page.IsValid的值...

如前所述,您可以使用屬性關閉客戶端驗證。

使用基於ValidatorBase的服務器端控件的客戶端驗證僅在PostBack即在任何服務器端按鈕/鏈接按鈕單擊上進行。

因此,您可以使用RegularExpressionValidator

<asp:TextBox runat="server" ID="txtPrice" />
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtPrice" ValidationExpression="^[0-9]*(\\,)?[0-9]?[0-9]?$" ErrorMessage="Input is incorrect" />

您也可以使用CustomValidator

<asp:TextBox runat="server" ID="txtPrice" />
<asp:CustomValidator runat="server" ControlToValidate="txtPrice" ErrorMessage="Input is incorrect" OnServerValidate="CustomValidator1_ServerValidate" />

protected void CustomValidator1_ServerValidate(object sender, ServerValidateEventArgs e)
{
    // use e.Value to validate and set e.IsValid
    // it's different depending on control to validate.
    // for custom controls you can set it using ValidationPropertyAttribute
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM