2011-05-23 4 views
1

Salut J'utilise le rasoir C# avec des cm de parapluie. J'essaie de vérifier si une variable est nulle ou vide mais elle renvoie toujours une erreur. Voici le codeC# Razor: Pourquoi ce test nul échoue

@if(String.IsNullOrEmpty(@Model.originalPageLink) == false) 
{ 
    <div>Read the original page from <a href="@Model.originalPageLink">@Model.originalPageName</a></div> 
} 

Lors du chargement de la page, le script du rasoir est erroné. Il n'y a aucune information d'erreur particulière qui soit utile. La partie du code Thats me donne des problèmes est la suivante:

@if(String.IsNullOrEmpty(Model.originalPageLink) == false) 

J'ai essayé ce code ici:

@if(Model.originalPageLink != null) 

Ce code ne l'erreur pas mais retourne une valeur non nulle lorsque la chaîne est vraiment nul.

Des idées à ce sujet?

+2

'@if (! String.IsNullOrEmpty (@ Model.originalPageLink))' devrait être bon. Pouvez-vous poster le message d'erreur que vous obtenez? –

+2

Je suppose que vous avez réellement 'IsNullOrEmpty (Model.originalPageLink)' et ** pas ** 'IsNullOrEmpty (@ Model.originalPageLink)', n'est-ce pas? Le '@' devant Model ne devrait pas être là - vous êtes déjà dans le contexte C# à ce moment-là. –

+0

Que signifie "erreurs dehors"? – Gabe

Répondre

4

OK..I ont tout compris .. Voici la solution

@if(String.IsNullOrEmpty(@Model.originalPageLink.ToString()) == false) 

Je dois mettre ToString() sur la variable dynamique . Maintenant, cela fonctionne correctement maintenant.

+1

Ah, vous utilisez des modèles dynamiques. Vous devriez envisager des modèles fortement typés. Ils sont beaucoup plus robustes. (Aussi, allez-y et ** Acceptez ** votre réponse.) –

+0

Umbraco CMS utilise exclusivement des modèles dynamiques. –

1

« lorsque vous avez éliminé l'impossible, ce qui reste, si improbable, doit être la vérité »

Est-il possible que le modèle est nul? C'est la seule gauche chose qui peut être possible nulle ...

Questions connexes