我知道有人问过这个问题,但这是我的理由:
正确的网址是:http://localhost:1478/application/ProductID.aspx?ID=1001
这将检索我的产品列表。但是,如果我删除查询字符串,请说:
http://localhost:1478/application/ProductID.aspx
错误是未将对象引用设置为对象的实例。在这个问题中是否有任何错误处理实现?
答案 0 :(得分:2)
更改
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;
}
答案 1 :(得分:1)
基本上你得到了这个错误,因为页面需要缺少的信息来完成它的过程。
如果您希望它在没有错误的情况下运行,那么您需要一个“if”块来检查是否已在查询字符串或网址中传递(产品)Id参数。
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
}
答案 2 :(得分:0)
更改
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;
}
答案 3 :(得分:0)
尝试这种方式,首先检查条件,查询字符串返回不为null。见下面的代码。
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
}