我在这里的代码中对某些内容感到困惑,并希望有人能在这里为我提供线索。
我正在尝试检查用户是否在将数据写入记录之前填充了文本框,因此我使用下面的代码检查文本框是否已填充。但这总是'返回为真,并继续进行,好像用户已将文本放入即使没有文本。
if (ReasonTextBox.Text.ToString() != null)
{
//Some commands to write data to a table
}
else
{
//Some alternative things to do
}
我还没有使用" .ToString()"结果相同。正如我在文本框中使用或不使用文本在调试中观察到的那样,无论如何,代码都将进入该过程。
Soooooo ...由于我是一个相当新的用C#编写网站我必须遗漏一些东西,显然空白文本框并不是真的无效?如果是这种情况,你会如何建议我检查它是否被填充?
答案 0 :(得分:0)
Text
属性不为null,它包含空字符串。
尝试改为:
if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text)) {
// do something
}
如果Text
为空,则在调用NullReferenceException
方法时,您将获得ToString()
。
答案 1 :(得分:0)
Text
的{{1}}属性为TextBox
,afaik永远不会string
。 (否则在致电null
时)会得到NullReferenceException
。
对ToString()
的调用已过时,因为ToString()
已经是Text
。
您不想检查string
是否为Text
,但如果为空:
null
或者如果仅包含空格的字符串也是错误的输入:
if (!string.IsNullOrEmpty(ReasonTextBox.Text))
答案 2 :(得分:0)
好的,在它开始之前结束这个。对于任何遇到这种情况的人,让我解释一下我发现的背景以及我如何解决这个问题。
除了asp:TextBox之外,我在文本框的顶部也使用了ajaxToolkit:HtmlEditorExtender。现在我不确定并且没有时间回去验证,但我非常怀疑问题是扩展器在文本框中添加了我发现的内容。当然,渲染页面中的颈缩眼睛看不到,直到我构建我的存储过程来解决问题并将数据写入表格并看到了(其中)我假设是空白或无效)我意识到发生了什么。所以我所做的只是在此之后写了一个二级检查来检查文本框中的值,如果“只有一个”则避免写入。这解决了这个问题。有点像惠普计算器解决方案,但效果很好!