[英]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
我的建議: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.