2010-02-23 5 views
2

Je convertis une application vb2003 asp.net 1.1 existante en C# 2008 asp.net 3.5. J'ai copié le code HTML sur ma fenêtre de balisage C# (comprenant des étiquettes, des champs de texte & boutons)Migration de VB 2003 (ASP.Net) vers C# 2008 ASP.Net

Cependant, quand j'attepmt à « Voir dans le navigateur », je reçois l'erreur suivante:

compilateur Message d'erreur : CS1061: 'ASP.apps_forms_newproductregistration_newproductreg_aspx' ne contient pas de définition pour 'btnSubmit_Click' et aucune méthode d'extension 'btnSubmit_Click' acceptant un premier argument de type 'ASP.apps_forms_newproductregistration_newproductreg_aspx' n'a été trouvée (il manque une directive using ou une référence d'assembly ?)

Erreur de source:

Line 320:<tr> 
Line 321: <td><input type="reset" value="Reset" class="formbutton"> 
Line 322: <asp:button cssclass="formbutton" text="Next" id="btnSubmit" runat="server" onclick="btnSubmit_Click"/></td> 
Line 323:</tr> 

Mon code contient derrière le code suivant:

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     if (ValidateHeader() && ValidateFooter()) 
      LoadDatabase(); 

    } 

Toutes les idées?

+0

La question ci-dessus n'affiche pas mes lignes de code HTML (Source Error Line 320: Ligne 321 etc.) Pourquoi? – user279521

+0

@ user279521 - les chevrons du bit de HTML se détachent du moteur de rendu, vous devez marquer ce bloc comme du code pour qu'il soit visible. – Murph

+0

Utilisez-vous Visual Studio? Y at-il une raison pour laquelle vous n'utilisez pas simplement l'assistant de mise à niveau, qui gère la conversion pour vous? (Dans mon expérience, il le gère parfaitement, sauf si vous avez des composants 3ème partie) – David

Répondre

6

J'ai également eu des problèmes de compatibilité lorsque j'ai copié et collé du code d'une version à une autre. Votre meilleur pari serait de re-taper le code complet à partir de zéro.

HTH.

+0

Merci. C'est ce que j'ai fini par faire. – user279521

1

Après avoir réfléchi à cela pendant quelques minutes, ma première pensée est la suivante:

Quelque chose dans le @Page directive du fichier ASPX est erroné. Un en-tête de la page ASP.NET typique pour C# dans VS2008 ressemble à ceci:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

(C'est d'un nouveau fichier /Default.aspx, vos fichiers peuvent avoir des attributs supplémentaires tels que MasterPageFile)

Note que la La ligne Hériter est sensible à la casse en C#, elle doit donc correspondre exactement au nom de classe du CodeFile.

+0

Je n'ai pas modifié la directive @Page. Dans mon expérience passée, je l'ai modifié, et je suis donc au courant des problèmes que cela causerait. Cette fois, j'ai vérifié la directive. J'ai même supprimé ma page, et créé une nouvelle page et créé un nouveau bouton (en remplaçant le bouton de 2003). Toujours pas de chance. – user279521

Questions connexes