我使用了以下代码
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版,无法更改。请帮助解决此问题需要做些什么
答案 0 :(得分:9)
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"]))