2012-12-04 1 views
1

Veuillez lire le code suivant. C'est dans le handler.asxh.La valeur ne peut pas être nulle. Nom du paramètre: Chaîne

public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "application/json"; 
     new RequestManagementFacade().PinRequest(Int32.Parse(context.Request.QueryString["requestId"]), (Boolean.Parse(context.Request.QueryString["isPinned"]))); 
    } 

Ceci affiche l'erreur suivante.

La valeur ne peut pas être nulle. Nom du paramètre: Chaîne

La valeur est passée car j'ai checke la chaîne de requête de demande de contexte, mais le code se brise à ce stade.

Ce gestionnaire se connecte à la couche logique métier.

Quelqu'un peut-il vous conseiller? Merci à l'avance

Kush

+0

duplication possible de [Qu'est-ce qu'une NullReferenceException dans .NET?] (http://stackoverflow.com/questions/4660142/what-is-a- nullreferenceexception-in-net) –

+0

Sûrement requestId ou isPinned est nul, évaluez-les tous les deux et piégez quelques erreurs! –

Répondre

4

Il y a valeur transmise comme j'ai checke dthe chaîne de requête de demande de contexte

Je soupçonne fortement vos diagnostics sont incorrects alors. Les valeurs ne disparaissent pas comme par magie - vous devez remettre en question vos hypothèses. C'est facile à déboguer à travers si. Je suggère de changer votre code:

public void ProcessRequest(HttpContext context) 
{ 
    context.Response.ContentType = "application/json"; 
    string requestId = context.Request.QueryString["requestId"]; 
    string isPinned = context.Request.QueryString["isPinned"]; 
    var facade = new RequestManagementFacade(); 
    facade.PinRequest(Int32.Parse(requestId), Boolean.Parse(isPinned)); 
} 

Il est alors vraiment simple à parcourir et découvrir ce qui se passe.

+0

Et c'est encore plus simple si vous mettez le code d'analyse sur des lignes séparées aussi: int ID = Int32.Parse (requestId); Et pour encore plus de robustesse, vous pouvez utiliser TryParse et gérer automatiquement les erreurs. –

+0

@SteveWellens: Eh bien, si le problème est que 'requestId' ou' isPinned' est nul, cela devrait être clair avant les appels d'analyse. –

+0

Merci pour votre aide – Kush

2

Il est probable que ce soit context.Request.QueryString["requestId"] ou context.Request.QueryString["isPinned"] ne retourne pas une valeur de chaîne valide. Vérifiez que les deux valeurs sont passées dans la chaîne de requête avec les ID appropriés, ceux-ci étant bien entendu requestId et isPinned.

+0

Ok résolu lors du passage des valeurs au gestionnaire i inséré comme « PinRequest.ashx? = » + RequestId + isPinned » Ce qui m'a donné le résultat 2True donc je pris conscience de l'accident de parcours était avec sans compter les noms de chaîne "PinRequest.ashx? requestId =" + this._requestId + "& isPinned =" + this._isPinned Merci pour vous aider les gars LeviBotelho Merci me as fait vérifier quelque chose que je manquais lors de la vérification comme javascript. – Kush

1

Ok résolu en passant les valeurs au gestionnaire i inséré comme

"PinRequest.ashx?="+requestId+isPinned" 

Ce qui m'a donné le résultat 2True

donc j'ai réalisé le hoquet était avec sans compter les noms de chaîne

"PinRequest.ashx?requestId=" + this._requestId + "&isPinned=" + this._isPinned 

Merci pour vous aider les gars

LeviBotelho Tha nk vous m'a fait vérifier quelque chose que je manquais lors de la vérification en tant que son javascript

Questions connexes