2009-05-23 7 views
4

obtiens l'erreur de référence d'objet en tout début de la méthode.référence d'objet non définie à une instance d'un objet que je suis # 3

Ex .:

259: public ActionResult ShowAddress(FormCollection formCollection) 
260: { 

Dans l'exemple ci-dessus je reçois le numéro de ligne d'erreur 260.

+0

Lorsque vous posez une question spécifique à une langue, veuillez préciser la langue que vous demandez. –

+0

@Prasad: Croyez-vous que tout le monde travaille sur le même langage de programmation que vous? Le même cadre ou plate-forme? Les mêmes versions? – Cerebrus

+0

oups. j'ai oublié de le spécifier. Le code provient du contrôleur MVC. – Prasad

Répondre

2

Voici le code de la question Commentaires

259: public ActionResult ShowAddress(FormCollection formCollection) { 
260: long _userId= long.Parse(formCollection["UserId"].ToString()); 
261: UserDetails _userDetails = _userDAL.GetUserDetails(_userId); 
262: if(!string.IsNullOrEmpty(_userDetails.Address1)) return RedirectToAction("GetAddress", "User"); else return View(); } 

Si vous voyez un NullReferenceException à la ligne 260, soit FormCollection ou le résultat de FormCollection [ "UserId"] est nulle. Vous devez en tenir compte dans votre code. Par exemple, vous pouvez faire ce qui suit.

public ActionResult ShowAddress(FormCollection formCollection) { 
    if (null == formCollection) { 
    return View(); 
    } 
    object obj = formCollection["UserId"]; 
    if (null == obj) { 
    return View(); 
    } 
    long _userId = long.Parse(obj.ToString()); 
    ... 
} 
+0

Considérez, 259: public ActionResult ShowAddress (FormCollection formCollection) 260: { 261: long _userId = long.Parse (formCollection ["UserId"]. ToString()); Je reçois l'erreur à la ligne 260, pas tout en accédant à la FormCollection. – Prasad

+0

@Prasad, pourquoi penses-tu que c'est la ligne 260? Obtenez-vous le numéro de ligne de l'information d'exception? Si c'est le cas, il est possible que l'exception et l'éditeur aient des numéros de ligne différents car l'un commence à 0 et l'autre 1. De plus, avez-vous joint un débogueur pour voir ce qui est réellement nul ici? – JaredPar

+0

s'il vous plaît voir la trace de la pile ci-dessous. copie partielle car je ne suis pas autorisé à entrer plus de 600 caractères. Stack Trace: à MVCApp.Controllers.UserController.ShowAddress (FormCollection FormCollection) dans C: \ Mes projets \ MVCApp \ Contrôleurs \ UserController.cs: ligne 260 à lambda_method (ExecutionScope, ControllerBase, Object []) à System.Web.Mvc.ActionMethodDispatcher.Execute (ControllerBase controller, Object [] paramètres) – Prasad

Questions connexes