12
votes

ASP.NET Comment résoudre CS1513:} Erreur attendue à la page

Je reçois une erreur au moment de l'exécution lors de la visualisation de la page ASP.NET dans le navigateur. Je ne reçois aucune erreur de construction, mais je reçois l'erreur de compilateur suivante au moment de l'exécution:

Erreur de compilation P>

Description: Une erreur s'est produite lors de la compilation d'une ressource requise pour le service de cette demande. Veuillez consulter les détails d'erreur spécifiques suivants et modifier votre code source de manière appropriée. P>

Compiler Error Message: CS1513: } expected

Source Error:


Line 329:            #line hidden
Line 330:            __output.Write("\r\n\t\t\t</div>\r\n\t\t");
Line 331:        }
Line 332:        
Line 333:        private System.Web.UI.Control __BuildControl__control7() {

Source File: c:\Windows\Microsoft.NET\Framework\v1.1.4322\
    Temporary ASP.NET Files\xxxxxxxx\450ffa78\d46d847d\
    k1gsz9dj.0.cs    Line: 331 


8 commentaires

Avez-vous essayé de chercher ce fichier .Cs dans le dossier spécifié?


C'est sur mon serveur, je n'ai pas accès au serveur.


Il dit clairement que "}" est manquant chèque sur ces lignes ...


J'ai des contrôles utilisateur différents appelés dans une page ASPX. Je ne peux pas simplement trouver la ligne. C'est pourquoi je demande que la ligne 333 fait partie de laquelle le contrôle de l'utilisateur? Comment puis-je dire?


Sérieusement, le chemin donné par le débogueur est le fichier que vous devez ouvrir


C'est le fichier que .NET génère à la volée, arrêtez donc de suggérer que cela dit quelle ligne vous devez trouver, car cela n'existe pas dans le code source.


[EDIT: voir la post de réponse ci-dessous]


La page sur le site Prod n'a pas été chargée. Dev a également échoué avec une exception comprenant le fichier, par exemple> SourceCode: "#pragma checksum> \" d: \ projpath \\ vues \\ employé \\ détails.cshtml \ "nettoyé, redémarré, etc. en vain La page, le dirigeait avec succès, puis une section décompressée par section jusqu'à ce que ... Toute la page a couru OK. Schrodinger's Bug, il disparaît lorsque vous le regardez. La punchline? OK sur le serveur de production . Et non, les données n'ont pas changé. Tout ce que je peux trouver, c'est que cela a eu à voir avec un fichier de navigateur local ou quelque chose du genre.


6 Réponses :


-1
votes

Eh bien que l'erreur suggère, vous manquez une attache frisée de fermeture '}'

Regardez la documentation des erreurs de compilateur MSDN: P>


1 commentaires

Mais cela ne devrait pas laisser la chose compiler à ce stade, pour arriver au point de montrer les fichiers dans le dossier temporaire_files.



-1
votes

Essayez de le compiler dans Visual Studio. Je pense que cela montrera également où la ligne exacte du code comportant des accolades frisées incomplètes.

erreur de compilation CS1513 < / p>


0 commentaires

3
votes

Regardez dans le balisage (ASPX ou ASCX) pour les blocs tels que:

<% ... some C# code.... { %>

   markup(controls, html etc)

<% } %>


1 commentaires

Il compile ASPX dans mon expérience, mais je pense que vous avez raison à ce sujet dans une ASCX



16
votes

Si le code d'erreur correspondant comme suit:

Nom de la variable identique au mot réservé, vous pouvez renommer la variable. p>

Un segment de code tel que: P>

@section{ 
    <!-- hiiii it's not about an error -->
}


1 commentaires

Rencontré cela aujourd'hui, ma situation était # 2 où j'avais @model. dans un segment de code. On dirait que le rasoir 2 que le dernier exemple avec le commentaire HTML et l'Apostrophe a été corrigé par le générateur de rasoir. Je ne pouvais pas reproduire qu'être une erreur.



0
votes

sur mon site, le problème a été causé par un bloc de code qui ressemblait à ceci:

            @{  
                var currentNode = @linkedList.Find(@CurrentPage);
                if (@currentNode.Next != null)
                {
                    var next = @currentNode.Next;
                    <li>
                        @next.Name
                    </li>
                }
                if (@currentNode.Previous != null)
                {
                    var prev = @currentNode.Previous;
                    <li>
                        @prev.Name
                    </li>
                }
            }


1 commentaires

Je crois que l'erreur dans votre cas est var sun = @ courantnode.next.next; et var prev = @ CurrentNode.Previous; Les deux sont à l'intérieur des segments de code. Je crois que le générateur de rasoir voudrait var suivant = courantnode.next; notez le manque de @ dans cette ligne.



0
votes

J'ai un problème similaire et oculd ne le trouvez que après un journal d'essais et d'erreurs.

L'erreur que j'ai faite consistait à ajouter un '@' aux variables à l'intérieur d'une boucle de foresach qui a commencé avec: xxx


0 commentaires