1

我知道有人问过这个问题,但这是我的情况:

正确的网址是:http://localhost:1478/application/ProductID.aspx?ID=1001

这将检索我的产品列表。但是,如果我删除查询字符串,可以说:

http://localhost:1478/application/ProductID.aspx 

错误是对象引用未设置为对象的实例。在这个问题中是否有任何错误处理的实现?

4

4 回答 4

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;
 }
于 2013-04-17T05:15:12.333 回答
1

基本上你得到那个错误是因为页面需要缺少的信息来完成它的过程。

如果您希望它在没有错误的情况下运行,那么您需要一个“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
}
于 2013-04-17T03:50:26.480 回答
0

试试这种方式,首先检查查询字符串返回不为空的条件。见下面的代码。

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
 }
于 2013-04-17T05:15:46.787 回答
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;
 }
于 2013-04-17T04:24:35.213 回答