检查文本框中C#后面代码中的值

时间:2016-11-30 16:27:45

标签: c# asp.net

我在这里的代码中对某些内容感到困惑,并希望有人能在这里为我提供线索。

我正在尝试检查用户是否在将数据写入记录之前填充了文本框,因此我使用下面的代码检查文本框是否已填充。但这总是'返回为真,并继续进行,好像用户已将文本放入即使没有文本。

if (ReasonTextBox.Text.ToString() != null)
   {
    //Some commands to write data to a table
   }
 else
   {
     //Some alternative things to do
   }

我还没有使用" .ToString()"结果相同。正如我在文本框中使用或不使用文本在调试中观察到的那样,无论如何,代码都将进入该过程。

Soooooo ...由于我是一个相当新的用C#编写网站我必须遗漏一些东西,显然空白文本框并不是真的无效?如果是这种情况,你会如何建议我检查它是否被填充?

3 个答案:

答案 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。现在我不确定并且没有时间回去验证,但我非常怀疑问题是扩展器在文本框中添加了我发现的内容。当然,渲染页面中的颈缩眼睛看不到,直到我构建我的存储过程来解决问题并将数据写入表格并看到了(其中)我假设是空白或无效)我意识到发生了什么。所以我所做的只是在此之后写了一个二级检查来检查文本框中的值,如果“只有一个”则避免写入。这解决了这个问题。有点像惠普计算器解决方案,但效果很好!