C#检查通过JQuery / Ajax调用的查询字符串接收的未定义变量

时间:2015-10-01 11:00:24

标签: c#

有很多问题在讨论这个主题时引用了Javascript;但是我无法得到任何参考C#。

' String ........'以下陈述返回false

     // foll querystring value from JQuery/Ajax call
     var  thisfieldvalue = Request.QueryString["fieldvalue"];

     bool boola = String.IsNullOrWhiteSpace(thisfieldvalue );
     bool boolb = String.IsNullOrEmpty(thisfieldvalue );

在C#中检查未定义字符串变量的最佳方法是什么?

注意:
我得到了未定义的变量'值偶尔通过JQuery / Ajax调用' querystring&#39 ;;当我使用语句

时,它最终出现在C#变量中

var thisfieldvalue = Request.QueryString [" fieldvalue"];

和' thisfieldvalue'变量传递了' String.IsNullOrWhiteSpace'以及' String.IsNullOrEmpty'检查....

注2:我已经再次编辑了这个问题,以使我的问题更清楚......我很抱歉,早些时候它不是那么清楚......

5 个答案:

答案 0 :(得分:1)

你可以使用

 string Undefined_var = "[value to test goes here]";  //note that string must be assigned before it is used
 bool boola = String.IsNullOrWhiteSpace(Undefined_var);

 //or     

 bool boolb = String.IsNullOrEmpty(Undefined_var);

区别在于IsNullOrWhiteSpace将检查IsNullOrEmpty所做的所有事情,以及Undefined_var仅包含空格的情况。但是,由于一个仅由空白字符组成的字符串在技术上尚未定义,因此我会选择两者中的IsNullOrEmpty

但请注意,由于string是引用类型,因此默认值为null;所以如果你想缩小一步以消除对空字符串的测试,你可以做这样的事情 -

 string Undefined_var = null;
 bool boola = Undefined_var == null;

答案 1 :(得分:0)

C#中没有“未定义的”字符串变量。

String是一种引用类型,因此如果您没有定义值,则默认值为null

未设置为值的字符串(默认值null)与明确设置为null的字符串之间没有区别。

答案 2 :(得分:0)

在Visual Studio 2013中,您的代码甚至无法编译。第一项检查标记为use of unassigned local variable

由于C#是强类型语言,因此请使用它,明确设置值:

 string Undefined_var = null;
 bool boola = String.IsNullOrWhiteSpace(Undefined_var);
 bool boolb = String.IsNullOrEmpty(Undefined_var);

然后您将获得两个true值。

答案 3 :(得分:0)

该问题不适用于C#,因为C#不允许使用未定义的局部变量。类的成员由成员的默认值初始化(对于引用类型 - 由null初始化)。

答案 4 :(得分:0)

  

if(Request.QueryString [" fieldvalue"] ==" undefined")

它是一个字符串,字面意思是字符串。

如果是5则是5

的字符串

如果它不存在则是一串未定义的