Comment forcez-vous Visual Studio à régénérer les fichiers .designer pour les fichiers aspx / ascx?

395

Parfois, lorsque je modifie une page ou contrôle les fichiers .designer cessent d'être mis à jour avec les nouveaux contrôles que je mets sur la page. Je ne sais pas ce qui provoque cela, mais je me demande s'il existe un moyen de forcer Visual Studio à régénérer le fichier .designer. J'utilise Visual Studio 2008

EDIT: Désolé, j'aurais dû noter que j'ai déjà essayé:

  • Fermer et rouvrir tous les fichiers et Visual Studio
  • Modification d'un contrôle runat = "server" sur la page
  • Supprimer et rajouter la directive page
Glenn Slaven
la source
57
Est-il ridicule qu'en 2012, Visual Studio ne dispose toujours pas d'un élément de menu contextuel pour régénérer des fichiers de concepteur à partir de fichiers source? Cela revient à ne pas pouvoir reconstruire une DLL corrompue. Je ne le comprends pas. Surtout avec le contrôle de source externe et les éditeurs externes, vous laissez Visual Studio paralysé. Gaspillage d'argent, si vous me demandez. J'essaie en fait de régénérer les concepteurs de fichiers de ressources. J'ai réussi à modifier ce régénéré, mais il est dans l' obscurité ... Augh !!! 1
BamBams
3
@bamccaig, si j'avais un sou pour chaque "fonctionnalité" bizarre comme celle-ci, je serais plus riche que Bill Gates. Si vous pensez que cela est mauvais, regardez où Outlook Express stocke ses données de messagerie. Il est enfoui profondément dans le dossier utilisateur sous un nom de dossier cryptique caché par défaut.
ATL_DEV
13
Existe-t-il une solution pour VS 2015?
Anton
Voir stackoverflow.com/questions/6508252/… connexes pour d'autres tentatives.
revoir
2
Ce n'est pas un correctif permanent, mais cela restaure les références de contrôle dans le fichier .cs: 1. Ouvrez le fichier .aspx associé; 2. Supprimez le seul ">" à la fin de la <%@ Pageligne de directive; 3. Attendez une seconde ou deux; 4. Remettez le ">". 5. Basculez vers le fichier .cs et vous verrez qu'il est maintenant exempt d'erreurs de référence de contrôle. Je fais cela depuis des lustres maintenant, fonctionne à chaque fois, dans chaque version VS.
ingrédient_15939

Réponses:

368

Si vous ouvrez le fichier .aspx et basculez entre la vue de conception et la vue html, cela invitera VS à vérifier les contrôles et à ajouter ceux qui manquent au fichier de concepteur.

Dans VS2013-15, il existe une commande Convertir en application Web dans le menu Projet . Avant VS2013, cette option était disponible dans le menu contextuel du clic droit pour les fichiers (c / p) x. Lorsque cela est fait, vous devriez voir que vous avez maintenant un fichier * .Designer.cs disponible et vos contrôles dans le HTML de conception seront disponibles pour votre contrôle.

PS: Cela ne devrait pas être fait en mode débogage, car tout n'est pas "recompilé" lors du débogage.

Certaines personnes ont également signalé leur réussite en (effectuant une copie de sauvegarde de votre fichier .designer.cs, puis) ​​en supprimant le fichier .designer.cs. Recréez un fichier vide avec le même nom.

Cette réponse contient de nombreux commentaires qui ajoutent des conseils sur la meilleure façon de recréer le fichier designer.cs.

Espo
la source
1
Cela n'a fonctionné pour moi qu'après la fermeture de chaque instance (même celles avec des solutions totalement différentes) de VS2008
Kevin
11
J'ai trouvé que le passage du mode de débogage au mode de sortie me compliquait la tâche, merci
Chris
5
Je voulais juste dire que j'avais la même erreur et j'ai tout essayé sur cette page, sans rien faire. Il s'est avéré qu'il me manquait une balise de fermeture ">" sur un div qui avait runat = "server". Exécution de VS-2008.
Ber53rker
10
Pour faire apparaître «Convertir en application Web», vous devez d'abord supprimer le fichier Designer.cs EN CLIQUANT À DROITE sur le fichier aspx dans l'Explorateur de solutions et en sélectionnant supprimer. Cela a fonctionné pour moi dans VS 2010.
DeveloperDan
43
VS2013 a l'application Convertir en Web dans le menu Projet. Tout simplement plus dans le menu contextuel.
Dennis Burton
95

Eh bien, j'ai trouvé une solution qui fonctionne, même si je ne l'aime pas vraiment. J'ai dû supprimer le fichier .designer.cs puis recréer un fichier vide du même nom. Lorsque je suis revenu et que j'ai à nouveau enregistré le fichier aspx, le fichier de concepteur a été recréé.

Épineux!

Glenn Slaven
la source
3
Cela a aussi fonctionné pour moi. Pas idéal. Aucune idée de la raison pour laquelle le fichier desginer d'origine a cessé de se mettre à jour correctement.
Iain Holder
3
Cela n'a pas fonctionné pour moi. Maintenant, j'ai un fichier vide et tout le code derrière ne fonctionne pas !!! Redémarrage ...
DiningPhilanderer
7
Cela a fonctionné pour moi. Je me suis assuré de supprimer l'original, de créer un nouveau fichier designer.cs avec le même nom, de fermer le nouveau fichier, de modifier légèrement le fichier .as (p / c) x pour forcer une sauvegarde, puis tout était bon.
TJB
9
si vous avez une erreur de compilation, elle ne reviendra pas. C'est généralement pourquoi il arrête de regagner en premier lieu. Vous devez activer la compilation de vue pour la voir, ce qui n'est pas simple.
DevelopingChris
1
J'ai également dû inclure le fichier vide dans mon projet.
JP Hellemons
78

J'utilise la méthode suivante qui fonctionne à chaque fois:

  • Sélectionnez tout le code en avant (balisage html, etc.) dans l'éditeur du fichier aspx / ascx.
  • Couper.
  • Sauver.
  • Pâte.
  • Sauver.

Recompilez.

Ruvan Fernando
la source
1
Je pense que supprimer un seul contrôle et le rajouter a le même effet.
chris
Je l'ai fait et cela a fonctionné pour moi. Cependant, j'ai dû créer un fichier vide appelé <name>.aspx.designer.vbpour le faire fonctionner
Tahir Hassan
64

J'ai récemment vu que j'avais le même problème. Visual Studio 2010 refusait de mettre à jour le fichier du concepteur.

Il s'avère que VS ne modifie pas le fichier de concepteur pour une page qui utilise CodeFile (exécuter hors des pages) au lieu de CodeBehind (DLL). Cela est vrai quel que soit le nombre de fois que vous fermez VS, rechargez le projet, recréez le ou les contrôles ou modifiez un fichier. Rien n'inciterait VS à régénérer le concepteur. C'est comme s'il ne crée pas le fichier de concepteur pour les pages CodeFile mais qu'il nécessite qu'il y soit.

Je l'ai changé en CodeBehind et enregistré la page. Le fichier de concepteur a été mis à jour immédiatement. Ensuite, je l'ai juste changé en arrière et tout était encore doré. Ce comportement semble être nouveau avec VS 2010 / .NET 4.0 car VS 2008 par défaut n'en souffre pas.

C'est cette partie:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

Modifiez CodeFile en CodeBehind, enregistrez et puis revenez.

Geoff
la source
Tard dans ce fil. Aucune des réponses décrites ci-dessus ne force les contrôles à être répertoriés dans le fichier * .aspx.designer.cs. J'espérais que celui-ci le ferait, mais il ne force toujours pas les contrôles à être déclarés dans le fichier * .aspx.designer.cs. J'utilise VS 2010 Pro SP1. J'essaie de faire fonctionner cela avec l'un des fichiers par défaut que l'EDI génère dans / Account comme ChangePassword.aspx. Merci.
paparush
1
Le mien était réglé sur CodeFile, je suis passé à CodeBehind, enregistré, de nouveau à CodeFile, enregistré, tout est doré. Les tentatives précédentes de correctifs ne l'ont pas fait pour moi. VS 2010 Pro
Dan
37

Il existe une autre possibilité: vous pouvez avoir une erreur dans votre fichier .aspx qui ne permet pas à Visual Studio de régénérer le concepteur.

Si vous passez en mode Création, le contrôle ne pourra pas être rendu. La correction du contrôle (dans mon cas, c'était une citation supplémentaire dans les propriétés) et la recompilation devraient régénérer le concepteur.

y0mbo
la source
J'ai eu le même problème, le contrôle utilisateur avait des erreurs, donc les pages qui utilisent le contrôle utilisateur avaient des erreurs non liées en raison des erreurs dans le contrôle utilisateur.
Ronen Festinger
1
Même cause. J'avais un attribut non pris en charge visible = "false" ajouté à un bouton asp. Je l'ai supprimé et le code du concepteur a été recréé.
chingNotCHing
21

La plupart des solutions ici ne fonctionnent pas si vous exécutez Visual Studio 2013 et éventuellement 2012. Microsoft a probablement introduit certaines optimisations pour rendre l'IDE plus rapide, par conséquent, elles ont réduit le nombre de cas qui déclenchent le générateur de code. Les scénarios suivants qui fonctionnaient autrefois ne fonctionnent plus:

  1. Supprimer le fichier aspx ou ascx - Ne vérifie plus ce cas
  2. Coupez tout le contenu et recadrez dans le fichier aspx ou ascx - Ne fonctionne plus, pas de changement dans les références
  3. Convertir en application Web - L'option n'est plus disponible
  4. Modification arbitraire du contenu du fichier aspx / ascx - Ne fonctionne plus (voir 2).

La solution est étonnamment simple, mais elle est un peu lourde. Afin de déclencher le générateur de code, changez quelque chose qui nécessiterait la génération de designer.aspx.cs. Changer le contenu qui n'affecte pas le code, comme un style CSS ou ajouter du texte, ne déclenchera pas le générateur de code. Vous devez modifier un contrôle référencé. Voici comment procéder:

Dans l'ascx ou aspx, changez l'ID du contrôle

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

à

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

Accédez à ascx.cs ou aspx.cs et assurez-vous de renommer toutes les références à "MyLink" en "theLINK" également. Enregistrez et faites la construction et vous devriez être prêt à partir.

ATL_DEV
la source
Très bon point sur les changements dans la nouvelle version de Visual Studio. Ce qui a fonctionné pour moi plutôt que de jouer avec les identifiants comme ci-dessus, a été d'effacer le fichier de concepteur, puis d'ajouter un tout nouveau contrôle bénin tel que <asp: PlaceHolder ID = "Foo" runat = "server />, puis d'enregistrer pour déclencher . régénération Alors même si vous oubliez de le retirer, rien est affecté.
Jordan Rieger
8
3. «Convertir en application Web» est disponible dans le menu «PROJET» si un fichier approprié est sélectionné.
WynandB
2
Hmm. Malheureusement, cette option n'est pas disponible s'il s'agit déjà d'une application Web.
ATL_DEV
Une modification rapide consiste à modifier la partie espace de noms de l'attribut Inherits =. Cela devrait modifier l'espace de noms dans le fichier .designer et régénérer tout le contenu à l'intérieur. Je viens d'essayer cela avec VS2013.3.
David Russell
Salut, j'essaye normalement avec la façon dont vous avez fourni, mais le problème est qu'un autre utilisateur n'est pas en mesure de générer le fichier g.cs alors que seul l'administrateur est capable de le faire. Nous utilisons TFS, en utilisant plusieurs ID utilisateur de développeurs dans VS, nous sommes en mesure de générer des g.cs. Quels sont les droits requis pour générer des g.cs sur le serveur, TFS et SP?
nirav
14

la seule façon que je sache est de supprimer le fichier de concepteur et de faire une conversion en application Web. Cependant, lorsque vous faites cela, il apparaît généralement avec l'erreur, expliquant pourquoi il ne s'est pas régénéré automatiquement en premier lieu, c'est généralement une référence de contrôle qui n'est pas déclarée en tête de la page.

DevelopingChris
la source
Désolé, cela n'a pas fonctionné, cela a fonctionné dans VS 2008 pour moi depuis que j'ai commencé à l'utiliser. Y a-t-il une erreur de syntaxe dans votre page? Vous devriez obtenir une boîte de dialogue qui vous indique ce qu'il faut corriger pour terminer le travail.
DevelopingChris
Cela a fonctionné pour moi. La classe code-behind avait une int Idpropriété qui se compilait très bien en C # car elle est sensible à la casse. Mais ID="ControlName"dans la page aspx essayait de le faire Id = "ControlName". Convert to Web Appdit quelque chose comme ControlName cannot be converted to Int32.
Nelson Rothermel
9

Convertir en application Web n'a pas fonctionné pour moi.

La suppression de designer.cs et le collage d'un designer.cs vide n'ont pas fonctionné non plus.

Mais oui, cela a fonctionné:

  1. Tout sélectionner (Default.aspx)
  2. Couper
  3. Enregistrer Default.aspx
  4. Pâte
  5. Enregistrer Default.aspx

Terminé. Nouveau concepteur.cs généré. :)

OD
la source
Je peux confirmer que cela fonctionne dans VS2013, je viens de le faire et cela a résolu mes problèmes.
ToastyMallows
Vous. avoir. eu. à. être. blague. moi. Cela a fonctionné pour moi dans VS2015, lorsque la conversion comme dans la réponse sélectionnée n'a pas fonctionné.
GraehamF
6

J'ai souvent constaté que le copier / coller m'a causé ce problème . La plupart des cas peuvent être résolus en modifiant l'ID d'un contrôle serveur (ajoutez simplement un caractère, puis supprimez-le).

Souvenez-vous également que le contrôle à l'intérieur de choses comme les répéteurs n'est pas visible dans le fichier de concepteur.

Et oui, il y a des cas où vous devez effectuer la magie de suppression du fichier répertoriée ci-dessus - mais la solution de changement de nom fonctionnera la plupart du temps.

Overflew
la source
2
C'est le genre d'erreur que j'ai souvent. Si vous copiez du HTML d'une page à une autre et que vous avez des contrôles avec runat = "server", les contrôles seront renommés pour éviter les conflits. Cependant, si vous collez à l'intérieur des balises "html comment" <! - whaterver ->, les ID de contrôle ne seront pas modifiés et tout conflit empêchera la régénération du fichier de concepteur, car il existe deux contrôles avec le même ID. C'est parce que les contrôles à l'intérieur des balises html "commentaires" sont également créés. ;)
tomasofen
5

Mon expérience est que si vous voulez faire comme dans cet article, comme indiqué ci-dessus.

Votre fichier de balisage (aspx / ascx) doit inclure l'attribut CodeBehind = "MyPage.aspx.cs" sinon il ne fonctionnera pas. J'ai blogué à ce sujet ici .

Johan Leino
la source
Ajouté cet attribut puis enregistré; rien. Ensuite, supprimé les héritages, enregistré, restauré et le tour est joué le fichier de code du concepteur! Cette fonctionnalité ennuyeuse me surprend à chaque fois :-(
GlennG
les deux liens sont morts = (
Maslow
5

J'ai trouvé un moyen de résoudre ce problème sans changer de code ou exécuter des commandes comme "Convertir en application Web" - et c'est aussi simple!

Ce que j'ai trouvé, c'est que le redémarrage de Visual Studio résout souvent le problème, mais parfois ce n'est pas le cas. Dans ces cas, si vous fermez Visual Studio, puis supprimez tout le contenu du répertoire "obj" du projet Web avant de le rouvrir, cela a toujours fonctionné pour moi.

(au redémarrage, il vous suffit d'ajouter un espace et de le supprimer à nouveau, puis d'appuyer sur Enregistrer pour régénérer correctement le fichier de concepteur)

tommycode
la source
J'ai eu ce problème avec une application héritée que j'ai été chargée de soutenir. Je tiens à vous remercier de l'avoir signalé. Je ne suis pas autorisé à convertir en application Web ", à créer une nouvelle solution ou à faire quoi que ce soit, mais corriger des bugs. Le concepteur plantait, constamment, pour moi. Mais cela a aidé jusqu'à présent.
Jamie Taylor
4

(Ce qui suit provient de l'expérience avec VS2005.)

Si vous modifiez une page ASPX pendant le débogage, le codebehind n'est pas mis à jour avec les nouvelles classes. Donc, vous devez arrêter le débogage, modifier trivialement la page ASPX (comme ajouter un bouton ou quelque chose), puis cliquez sur Mode Création, puis supprimez le bouton. Ensuite, vos fichiers de concepteur doivent être mis à jour.

Si vous rencontrez un problème différent avec VS2008, je ne peux pas vous aider.

En dangerMassa
la source
Ran dans cela avec VS.Net 2010 ... a dû faire exactement cela ... Merci @EndangeredMassa pour le conseil ... J'avais aussi l'habitude de traverser cela dans les jours VS.Net 2002/2003 ... J'aimerais le savait alors;)
Richard B
4

Lorsque vous êtes en mode Création, faites un clic droit sur l'écran et appuyez sur Actualiser.

yertle
la source
3

Une autre chose qui a fonctionné était -

  1. Supprimez manuellement puis créez un fichier de concepteur dans le système de fichiers.
  2. Modifier le fichier de projet .
  3. Ajouter du code pour inclure le concepteur
    Par exemple:<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Projet de rechargement
  5. Ouvrez le fichier (c / p) x en mode conception / affichage et enregistrez-le.
  6. Vérifiez le fichier du concepteur. Le code sera là.
Vandesh
la source
3

Si vous utilisez VS2013 ou une version ultérieure, assurez-vous que le code référencé avec l'attribut "CodeBehind" et non "CodeFile", puis procédez comme suit

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • créer une page de concepteur vide (ou la supprimer si elle existe déjà "yourControl.ascx.designer.cs")
  • dans l'ascx (ou aspx) copiez tout le code, supprimez-le, puis enregistrez. repasser, puis enregistrer.
  • le fichier de concepteur doit être rempli maintenant.
Tarek El-Mallah
la source
2
  • Sélectionnez tout dans le fichier de concepteur et supprimez tout dans le fichier, en le laissant vide, puis enregistrez
  • Sélectionnez tout dans le fichier ASPX / ASCX et coupez tout, puis recollez-le
  • Le fichier de conception doit avoir régénéré le code
Mark Cidade
la source
1
Cela a fonctionné pour moi! J'ai également enregistré le fichier .aspx après avoir tout coupé. Collé, enregistré et mon fichier de concepteur (précédemment vide) a été entièrement rempli.
DaveD
2

Voici ce que j'ai expérimenté, sélectionnez le dossier du site Web, faites un clic droit dans l'Explorateur de solutions, sélectionnez Convertir en application Web pour tout le fichier aspx qu'un fichier de concepteur sera généré.

Sameer

même
la source
2

Juste pour ajouter à la longue liste de réponses ici - je viens de rencontrer ce problème dans VS2010 (SP1) avec un fichier .aspx. J'ai essayé d'ajouter et de supprimer des contrôles ASP standard (ce qui a fonctionné dans le passé) mais à la fin, j'ai dû supprimer l'une des lignes runat = server d'un contrôle existant (et enregistrer) pour forcer le fichier de concepteur à se régénérer.

Rory Solley
la source
2

Je rencontre le même problème depuis des années maintenant, en travaillant dans Visual Studio 2008. Et j'ai essayé toutes les "solutions" sur StackOverflow et des dizaines de blogs, tout comme je suis sûr que vous l'avez tous fait. Et parfois ils fonctionnent, et parfois ils ne fonctionnent pas, tout comme je suis sûr que vous les avez tous rencontrés. Et apparemment, c'est toujours un problème dans VS2010 et VS2012.

Donc finalement, il y a quelques mois, j'ai décidé que c'était assez, et en quelques semaines j'ai construit un outil appelé "Redesigner" qui génère des fichiers .designer. Il est open-source sous la licence BSD , avec le code source disponible sur SourceForge - gratuit à utiliser, gratuit à voler, libre de faire tout ce que vous voulez. Et il fait ce que Visual Studio ne fait pas si souvent, c'est-à-dire générer des fichiers .designer rapidement et de manière fiable.

Il s'agit d'un outil de ligne de commande autonome qui analyse les fichiers .aspx et .ascx, effectue toute la magie de réflexion nécessaire et crache les fichiers .designer corrects. Il fait tout l'analyse et la réflexion lui-même pour éviter de s'appuyer sur du code existant, que nous savons tous trop bien rompu. Il est écrit en C # contre .NET 3.5, mais il s'efforce d'éviter d'utiliser même System.Web pour autre chose que des déclarations de type, et il n'utilise pas ou ne s'appuie pas du tout sur Visual Studio .

Redesigner peut générer de nouveaux fichiers .designer; et il offre une option --verbose de sorte que lorsque les choses tournent mal, vous obtenez des messages d'erreur bien meilleurs que "Une exception de type System.Exception a été levée." Et il y a une option --verify qui peut être utilisée pour vous dire quand vos fichiers .designer existants sont cassés - contrôles manquants, déclarations de propriétés incorrectes, illisibles par Visual Studio, ou sinon tout simplement borked.

Nous l'utilisons sur mon lieu de travail pour nous sortir des confitures pendant la majeure partie du mois dernier maintenant, et bien que Redesigner soit encore une version bêta, il avance suffisamment pour que cela vaille la peine de partager son existence avec le public. J'ai bientôt l'intention de créer un plugin Visual Studio pour cela afin que vous puissiez simplement cliquer avec le bouton droit pour vérifier ou régénérer les fichiers de concepteur comme vous l'avez toujours souhaité. Mais en attendant, l'utilisation de la ligne de commande est assez facile et vous évitera beaucoup de maux de tête.

Quoi qu'il en soit, allez télécharger une copie de Redesigner maintenant et arrêtez de vous arracher les cheveux . Vous n'en aurez pas toujours besoin, mais quand vous le ferez, vous serez content de l'avoir!

https://sourceforge.net/projects/redesigner/

Sean Werkema
la source
semble exagéré pour une solution simple
Chris McGrath
1
@ChrisMcGrath Peut-être exagéré, mais j'ai ressenti la douleur qui a incité cet outil. J'admire son dévouement à consacrer le temps de le construire :)
Jordan Rieger
2

TL; DR;
Modifiez l' Inheritsattribut de la @Pagedirective de la page ASPX et appuyez sur Enregistrer. Votre fichier de concepteur doit être régénéré.

Assurez-vous que Inherits= <namespace>. <class_name> et CodeBehind= <class_name> .aspx.cs


J'essayais de le faire sur un projet Sharepoint 2010, en utilisant VS 2010 et TFS , et aucune des solutions ci-dessus ne fonctionnait pour moi. Principalement, l'option «Convertir en application Web» est manquante dans le menu contextuel du fichier .ASPX lors de l'utilisation de TFS dans VS 2010.

Cette réponse a finalement aidé . Ma classe ressemblait à ceci:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

Et ma @Pagedirective était (sauts de ligne ici pour plus de clarté):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

J'ai d'abord changé le Inheritsen MyProjects.Finance.Pages , appuyez sur Enregistrer, puis je l'ai changé de nouveau en MyProjects.Finance.Pages.FinanceSubmission et appuyez à nouveau sur Enregistrer. Et wallah! La page du designer a été régénérée!

J'espère que cela aide quelqu'un à utiliser TFS!

SNag
la source
2

Dans Visual Studio:

1) Supprimez votre fichier aspx.designer.cs

2) Faites un clic droit sur votre fichier aspx et sélectionnez "Convertir en application Web" Cela devrait ajouter le fichier aspx.designer.cs en arrière et à jour.

Si vous obtenez une erreur disant:

"La génération du fichier de concepteur a échoué: la méthode ou l'opération n'est pas implémentée."

Essayez de fermer Visual Studio, puis rouvrez votre projet et recommencez l'étape numéro deux

Comment générer aspx.designer.cs dans Visual Studio?

nouman arshad
la source
2
"Convertir en application Web" n'existe pas dans le menu contextuel d'un fichier aspx. Du moins, ce n'est pas le cas dans VS Professional 2015.
Chris Walsh
2
  1. Étape 1 : Sélectionnez tout votre code aspx, coupez [CTRL + X] ce code et enregistrez.

  2. Étape 2 : collez à nouveau le même code dans la même page et enregistrez à nouveau

Maintenant, votre page .desinger sera actualisée avec tous les contrôles de la page .aspx.

Sampat
la source
1

Supprimez le fichier designer.cs puis cliquez avec le bouton droit sur le fichier .aspx et choisissez "Convertir en application Web". S'il y a un problème avec vos déclarations de contrôle, comme une balise qui n'est pas bien formée, vous obtiendrez un message d'erreur et vous devrez corriger la balise mal formée avant que Visual Studio puisse avec succès générer à nouveau votre fichier de concepteur.

Dans mon cas, à ce stade, j'ai découvert que le problème était que j'avais déclaré un contrôle bouton qui n'était pas à l'intérieur d'une balise de formulaire avec un attribut runat = "server".

Max Lancaster
la source
1

Il s'agit d'un bogue dans l'IDE; Je l'ai vu depuis VS 2003. La solution est cependant simple.

Sauvegardez vos fichiers. Quittez complètement l'EDI (assurez-vous que le processus s'arrête, tâche mgr.)

Rouvrez la solution, salissez le balisage, enregistrez. Fixé.

bcweis
la source
1

J'ai eu deux problèmes ... AJAXControlkit obsolète - supprimé l'ancienne DLL, supprimé les anciens contrôles de la boîte à outils, téléchargé la nouvelle version, chargé la boîte à outils et glissé et déposé de nouveaux contrôles sur la page (voir http://www.experts-exchange.com /Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html )

Il y avait aussi une faute d'orthographe dans mon contrôle d'étiquette (j'avais utilisé «classe» au lieu de «cssclass»).

Ta

user381377
la source
1

J'ai eu le problème que mes nouveaux contrôles ne pouvaient pas générer dans le fichier de concepteur lorsqu'ils étaient déclarés dans le fichier .ascx. Le problème était que je les avais également déclarés dans le code. La suppression de la déclaration dans le code derrière a donc résolu mon problème.

Le Demz
la source
1

Si vous êtes comme moi et que vous ajoutez d'anciens fichiers .ASPX à un projet plus récent. Vous allez probablement oublier certains des contrôles utilisés sur la page.

Si oui, premièrement, s'il y a plusieurs fichiers que vous installez; Fixez un à la fois en premier.

Lorsque vous compilez, corrigez les erreurs générées. Ce seront probablement les mêmes erreurs dans tous les fichiers.

Ensuite, si vous avez des fichiers Designer, supprimez tous les fichiers Designer insérés. Ensuite, assurez-vous qu'il n'y a pas d'autres erreurs lors de la compilation, autres que les fichiers du concepteur.

Enfin, faites un clic droit sur votre projet Web et cliquez sur Convertir en application Web. Cela insérera les fichiers de concepteur dont vous avez besoin.

Ce sont les meilleures étapes absolues pour résoudre les problèmes.

Carlo
la source
1

Une chose que personne n'a mentionnée est de visiter la page . J'ai dû arrêter la régénération de mon fichier de concepteur car j'incluais un contrôle utilisateur qui n'existait pas (pour diverses raisons), et aucune des choses suggérées ici ne fonctionnait. Pour une raison quelconque, je n'ai reçu aucune erreur dans Visual Studio - à part celle qui se plaignait du fait que mes contrôles côté client n'existaient pas parce qu'ils n'étaient pas régénérés, bien sûr.

Il a fallu réellement visiter la page pour obtenir ASP.Net pour me dire l'erreur.

Tacroy
la source
1

Cela peut également se produire si vous mettez à jour l'espace de noms et ne mettez pas à jour l'espace de noms dans le fichier de concepteur. Correction: mettez également à jour l'espace de noms dans le fichier de concepteur.

Ben Weeks
la source
1

La solution qui a fonctionné pour moi est:

Je viens de copier la page et de la coller dans la même partie, puis de renommer la première page (quel que soit le nom) et de renommer la page copiée en page d'origine. Maintenant, les contrôles sont accessibles.

vous y
la source