如何将不为 null 的表单对象作为收据返回
本文关键字:单对象 返回 表单 null | 更新日期: 2023-09-27 18:33:34
我有一个 Web 应用程序,它有大约 50 个或更多字段分成几个面板,我正在通过几个步骤在asp:wizard
中使用它们。在表单的末尾,我想创建一个"这是您请求的 Label1.text...."根据用户要求的任何内容,无需重新创建多个标签并将每个框的文本绑定到手动标签。这是我尝试调用表单中不为 null 的文本框列表,但由于感叹号而引发异常。
var requested = this.Controls.OfType<TextBox>()
.Where(txt => string.!IsNullOrWhiteSpace(txt.Text));
foreach (var textBox in requested)
{
Response.Write(requested);
}
这是因为这是
无效的语法 - 你想调用string.IsNullOrWhiteSpace
并反转结果:
.Where(txt => !string.IsNullOrWhiteSpace(txt.Text))
目前,您在方法调用过程中得到了!
,这就是问题所在。
(请注意,目前您正在尝试写出文本框本身 - 我怀疑您不想这样做。但是当你克服了语法错误时,你会发现这一点。
你走在正确的轨道上。与其使用 Response.Write(这可能会变得混乱),我会使用单个标签控件。让我们调用 lblResult。
var sb = new StringBuilder();
foreach (var textBox in requested)
{
sb.Append(textBox.Text); //Add the text not the textbox
sb.Append("</br>"); //Add a line break to make it look pretty
}
lblResult.Text = sb.ToString();
请注意,为了性能考虑,使用 StringBuilder 来构建我们的结果字符串。
您还需要根据其他答案修复您的 Where 子句:
Where(txt => !string.IsNullOrWhiteSpace(txt.Text))
您需要
使用 !string.IsNullOrWhiteSpace(txt.Text)
而不是string.!IsNullOrWhiteSpace(txt.Text)
string.!IsNullOrWhiteSpace(txt.Text)
是无效的语法,因此您会收到编译错误