我知道有人问过这个问题,但这是我的情况:
正确的网址是:http://localhost:1478/application/ProductID.aspx?ID=1001
这将检索我的产品列表。但是,如果我删除查询字符串,可以说:
http://localhost:1478/application/ProductID.aspx
错误是对象引用未设置为对象的实例。在这个问题中是否有任何错误处理的实现?
改变
string ProductID = Request.QueryString["ID"].ToString();
至
if(!string.IsNullOrWhiteSpace(Request.QueryString["ID"]))
{
string ProductID = Request.QueryString["ID"];
DataList1.DataSource = showResult.ShowProductResult(ProductID);
}
else
{
//Do something when Id is empty or null
//DataList1.DataSource =null;
}
基本上你得到那个错误是因为页面需要缺少的信息来完成它的过程。
如果您希望它在没有错误的情况下运行,那么您需要一个“if”块来检查(产品)Id 参数是否已在查询字符串或 url 中传递。
VB
If trim(request("ID")) <> "" Then
'Do your product search here and display the results in your page HTML
Else
'No product ID parameter was passed! - You may optionally display this fact in your HTML
End If
C#
if (!string.IsNullOrEmpty(request("ID")) {
//Do your product search here and display the results in your page HTML
} else {
//No product ID parameter was passed! - You may optionally display this fact in your HTML
}
试试这种方式,首先检查查询字符串返回不为空的条件。见下面的代码。
int ProductID ;
if(Request.QueryString["ID"]!=null)
{
ProductID =Convert.ToInt32( Request.QueryString["ID"].ToString());
showResult.YourmethodName(ProductID);
}
else
{
//Show one error lik "INVALID URL" ,Please go back
}
改变
string ProductID = Request.QueryString["ID"].ToString();
至
string ProductID="";
if(Request.QueryString["ID"]!=null)
{
ProductID = Request.QueryString["ID"].ToString();
DataList1.DataSource = showResult.ShowProductResult(ProductID);
}
else
{
//DataList1.DataSource =null;
}