簡體   English   中英

如何在ASP.NET Web表單中驗證此數據輸入表單?

[英]How to validate this data entry form in ASP.NET Web Forms?

我是ASP.NET WebForms的新開發人員,正在努力驗證數據輸入表單。 我應該只使用服務器端驗證,並且必須使用純C#。 我想知道是否有一種最好的方法來驗證以下形式,而不是使用多個嵌套的if-else語句,這會造成混亂並使代碼很難理解。

ASP.NET表單:

<div class="form-horizontal">

                <div class="form-group">

                    <label class="control-label col-xs-2">Type</label>

                    <div class="col-xs-4">

                        <asp:TextBox ID="txtType" runat="server"></asp:TextBox>

                    </div>

                    <label class="control-label col-xs-2">Category</label>

                    <div class="col-xs-4">

                        <asp:TextBox ID="txtCategory" runat="server"></asp:TextBox>

                    </div>

                </div>

                <div class="form-group">

                    <label class="control-label col-xs-2">Item</label>

                    <div class="col-xs-10">

                        <asp:DropDownList ID="ddlItem" runat="server"></asp:DropDownList>

                    </div>

                </div>

                <div class="form-group">

                    <label class="control-label col-xs-2">Issue</label>

                    <div class="col-xs-10">

                        <asp:TextBox ID="txtIssue" runat="server"></asp:TextBox>

                    </div>

                </div>

                <div class="form-group">

                    <label class="control-label col-xs-2">Suggestion</label>

                    <div class="col-xs-10">

                        <asp:TextBox ID="txtSuggestion" runat="server"></asp:TextBox>

                    </div>

                </div>



                <div class="form-group">

                    <label class="control-label col-xs-2">Reference</label>

                    <div class="col-xs-10">

                        <asp:TextBox ID="txtReference" runat="server"></asp:TextBox>

                    </div>

                </div>

                <div class="form-group">

                    <label class="control-label col-xs-2">Priority</label>

                    <div class="col-xs-10">

                        <asp:DropDownList ID="ddlPriority" runat="server"></asp:DropDownList>

                    </div>

                </div>

</div>

我當前驗證表單的方法是使用if-else語句,例如:

 string type = string.Empty;

            string category = string.Empty;

            string issue = string.Empty

            string suggestion = string.Empty;

            string Reference = string.Empty;





            if (!string.IsNullOrWhiteSpace(txtType.Text))

    {

        type = txtType.Text.Trim();

        if (!string.IsNullOrWhiteSpace(txtCategory.Text))

        {

                            category = txtCategory.Text.Trim();

                            if(!string.IsNullOrWhiteSpace(txtIssue.Text))

                            {

                               issue = txtIssue.Text.Trim();

                               if(!string.IsNullOrWhiteSpace(txtSuggestion.Text))

                               {

                                  suggestion = txtSuggestion.Text.Trim();

                            try

                            {

                            //to do the operation

                            }

                            catch (Exception ex)

                            {

                                            throw ex;

                            }

                               }

                               else

                               {

                                  lblMessage.CssClass = "text-error";

                                  lblMessage.Text = Encoder.HtmlEncode("Please fill out the Suggestion!");                    

                               }

                            }

                            else

                            {

                               lblMessage.CssClass = "text-error";

                               lblMessage.Text = Encoder.HtmlEncode("Please fill out the Issue!");

                            }

        }

        else

        {

            lblMessage.CssClass = "text-error";

            lblMessage.Text = Encoder.HtmlEncode("Please fill out the Category!");

        }

    }

    else

    {

        lblMessage.CssClass = "text-error";

        lblMessage.Text = Encoder.HtmlEncode("Please fill out the Type!");

    }

它運行良好,但我認為它很長,而且會造成混淆,並使代碼很難理解。 您能否通過在操作之前向我展示最佳和正確的方法來驗證所有輸入(或數據輸入)的方法來幫助我?

您可以從Visual Studio工具箱使用ASP.NET驗證控件:

使用RequiredFieldValidator

CompareValidator

RangeValidator控件

的RegularExpressionValidator

的CustomValidator

DynamicValidator

的ValidationSummary

來自探索ASP.NET驗證控件

我的建議:RequiredFieldValidator控件,該控件檢查是否為輸入控件輸入了數據。 對於要在其上強制執行“強制字段”規則的每個表單元素,都可以具有RequiredFieldValidator控件。

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" Style="top: 98px;
        left: 367px; position: absolute; height: 26px; width: 162px" ErrorMessage="password required"
        ControlToValidate="TextBox2"></asp:RequiredFieldValidator>

另請參閱: 如何使用ASP.NET驗證控件來驗證用戶輸入

考慮使用模型驗證。 例如:

[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

暫無
暫無

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

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