2010-10-01 64 views
0

我有大约6或7个文本框需要验证,以确保它们不是空的服务器端代码。所以我通常这样做,检查每个文本框1,以确保它们不是空的。有没有其他有效的方法来做到这一点?我已经搜索过,并发现将所有文本框添加到列表中并使用每个文本框是一种更好的方法。有没有其他方法可以实现这一目标?感谢名单很多提前:)高效/简单的方法来验证空文本框?

+0

为什么你不能与RequiredFieldValidator的尝试 – anishMarokey 2010-10-01 04:38:22

+0

RequiredFieldValidators使用,以及在客户端代码。这是JavaScript可以很容易被禁用,我也选择做服务器端验证。 – 2010-10-01 04:40:44

回答

4

只是检查它们各自单独地:

if (string.IsNullOrEmpty(this.NameTextBox.Text) || 
    string.IsNullOrEmpty(this.AddressLine1TextBox.Text) || 
    // etc... 
    ) 
{ 
    // Handle me 
} 

或者可能:

void CheckTextBox(TextBox textBox) 
{ 
    if (textBox == null) 
    { 
     throw new ArgumentNullException("textBox"); 
    } 
    if (string.IsNullOrEmpty(textBox.Text)) 
    { 
     // Handle me 
    } 
} 

void Validate() 
{ 
    CheckTextBox(this.FirstNameTextBox); 
    CheckTextBox(this.AddressLine1TextBox); 
    CheckTextBox(this.AddressLine2TextBox); 
} 

7文本框确实不是很多 - 明确检查每一个保持其简单并确保其他人阅读你的代码知道发生了什么,而混淆集合则增加了另一层间接寻址,并使调试稍微简单一些。

保持简单!

+1

是的,我同意7个文本框没有那么多,按照你的方式保持代码简单。但是如果有15到20个文本框,这种方式有点笨重......但是在一页中15-20个文本框又是一个糟糕的设计:S'编辑:'你的第二个解决方案看起来非常好:) – 2010-10-01 04:38:10

1

我同意Kragen--由于所有的检查,你的代码可能看起来很“大”,但你确实正在编写程序为了验证这些东西而需要做的事情,所以任何一种巧妙的方法都会减少你写的代码行数实际上不会加快事情的速度。

问题虽然:你必须验证服务器上的文本框?如果您只验证文本框不是空的,我建议使用客户端验证。这将节省您的服务器时间和带宽,因为您的用户将不被允许将表单提交到您的服务器,直到他们的浏览器验证它们不是空的。

您仍然希望在服务器端进行验证(以防他们的浏览器未启用JavaScript或尝试某种恶意行为)。

客户端验证的本机ASP.NET方式涉及向ASPX添加ASP.NET验证标签。其实很简单。下面是MSDN上的例子: http://msdn.microsoft.com/en-us/library/aa479013.aspx#aspnet-validateaspnetservercontrols_topic3

我已经简化他们的代码有点满足您的要求:

<form runat="server"> 
    <asp:TextBox id="TextBox1" runat="server" /> 
    <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Name is required!" ControlToValidate="TextBox1" /> 

    <asp:TextBox id="TextBox2" runat="server" /> 
    <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="Address is required!" ControlToValidate="TextBox2" /> 

    <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button> 
</form> 
+0

是!我唯一关心的是有恶意的用户。除了我的RequiredFieldValidators完美无缺地完成他们的工作:) – 2010-10-01 04:56:08