获取'IsNullOrWhiteSpace'的错误

时间:2015-02-12 13:20:38

标签: c# asp.net

我使用了以下代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        if (string.IsNullOrWhiteSpace(Request.QueryString["tx"]) == false)
        {
            if (Regex.IsMatch(HttpUtility.UrlDecode(Request.QueryString["tx"]), "[^a-zA-Z0-9 %  +]"))
            {
                //error
                Response.Redirect("Error.aspx");
            }
            else
            {
                SearchResult();
            }
        }
    }
}

但我在

收到错误

if(string.IsNullOrWhiteSpace(Request.QueryString [" tx"])== false)

as ' string'不包含' IsNullOrWhiteSpace'

的定义

另外,我也使用了相关的命名空间。

我使用的是asp.net 2.0版,无法更改。请帮助解决此问题需要做些什么

4 个答案:

答案 0 :(得分:9)

在.NET 4.0中引入了

String.IsNullOrWhiteSpace

https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace%28v=vs.100%29.aspx

如果你真的不能使用更高版本,那么你可以建立自己的方法来做同样的事情。

以下是该方法的实施(感谢Farhad Jabiyev):

http://referencesource.microsoft.com/#mscorlib/system/string.cs,55e241b6143365ef

public static bool IsNullOrWhiteSpace(String value) {
    if (value == null) return true;

    for(int i = 0; i < value.Length; i++) {
        if(!Char.IsWhiteSpace(value[i])) return false;
    }

    return true;
}

注意:我已删除了上述链接中实施中显示的[Pure]属性,因为System.Diagnostics.Contracts.PureAttribute is also not present until .NET 4.0

答案 1 :(得分:2)

您可以构建自己的IsNullOrWhiteSpace

public static bool IsNullOrWhiteSpace(string input)
{
    if (input == null || input == String.Empty) return true;
    foreach (char c in input)
        if (!Char.IsWhiteSpace(c))
            return false;
    return true;
}

答案 2 :(得分:0)

您可以查看:

if (Request.QueryString["tx"] != null && Request.QueryString["tx"].Trim() != "")

答案 3 :(得分:-1)

正如roryap所说,String.IsNullOrWhiteSpace不可用。

String.IsNullOrEmpty可能适合您的需要。

if (!string.IsNullOrEmpty(Request.QueryString["tx"]))