C# 在文本框中检查C代码背后的值#
我对我代码中的某些东西感到困惑,希望有人能在这里给我提供线索 在我将数据写入记录之前,我试图检查我的用户是否已填充文本框,因此我使用下面的代码检查文本框是否已填充。但是这个“总是”返回为真,并且继续进行,就好像用户已经将文本放置在了中,即使没有文本C# 在文本框中检查C代码背后的值#,c#,asp.net,C#,Asp.net,我对我代码中的某些东西感到困惑,希望有人能在这里给我提供线索 在我将数据写入记录之前,我试图检查我的用户是否已填充文本框,因此我使用下面的代码检查文本框是否已填充。但是这个“总是”返回为真,并且继续进行,就好像用户已经将文本放置在了中,即使没有文本 if (ReasonTextBox.Text.ToString() != null) { //Some commands to write data to a table } else { //Some alte
if (ReasonTextBox.Text.ToString() != null)
{
//Some commands to write data to a table
}
else
{
//Some alternative things to do
}
我也在没有“.ToString()”的情况下完成了这项工作,并获得了相同的结果。正如我在debug中观察到的,无论文本框中是否有文本,代码都将进入过程
哦哦。。。因为我对用C语言编写网站还相当陌生,所以我肯定遗漏了一些东西,很明显,一个空白的文本框并不是真的空的?如果是这种情况,您建议我如何检查它是否被填充?属性
Text
不是空的,它包含一个空字符串
请尝试:
if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text)) {
// do something
}
如果
Text
为null,则在调用ToString()
方法时,您会得到NullReferenceException
。TextBox
的Text
属性是一个字符串,afaik永远不会null
。(否则,在调用ToString()
时,您将得到一个NullReferenceException
)
对ToString()
的调用已过时,因为Text
已经是字符串
您不想检查Text
是否为null
,但如果为空:
或者,如果仅包含空格的字符串也是错误的输入:
if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text))
好吧,在开始之前就结束吧。对于遇到这个问题的人,让我解释一下我发现的背景以及我是如何解决这个问题的
除了asp:TextBox之外,我还在TextBox顶部使用了一个ajaxToolkit:HtmlEditorExtender。现在我不确定,也没有时间回去验证,但我高度怀疑问题是扩展器在文本框中添加了我发现的
。当然,
在呈现的页面中是看不见的,直到我构建存储过程来解决这个问题,并将数据写入表中,看到
(我假设为空白或空)我才意识到发生了什么。因此,我所做的只是在这之后写下一个二次检查,检查文本框中的
值,如果“只有一个
”,则避免写。这解决了问题。有点像HP计算器解决方案,但效果很好 尝试使用类似于if(string.IsNullOrEmpty(string))
if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text))