7
votes

Type de projet ne permet pas d'ajouter de nouveaux "contrôleurs d'utilisateurs Web"

J'ai un niveau de compétence médiocre avec VS et C #. J'essaie d'ajouter un fichier .ascx avec CodeBeHind à un projet existant dans ses contrôles utilisateur.

Cliquez avec le bouton droit de la souris sur UserControls -> Ajouter -> Nouvel élément et rechercher "Contrôle de l'utilisateur Web" renvoie "aucun élément trouvé."

Copier-coller un fichier .ascx existant (il y a plus d'une douzaine) crée avec succès le nouveau fichier .ascx, mais il n'y a pas de fichiers deascx.cs ou .ascx.designer.cs fichiers ci-joints et aucun moyen apparent de les ajouter .

plus d'informations

Copier "MyUSERCONTROL.ASCX" Copie effectivement les fichiers de CodeBeHind, mais ils ont été copiés sous le fichier original "myuserercontrol.ascx" comme "myusercontrol - copy.ascx.cs" et "" myusercontrol - copy.ascx.designer. cs ". VS ne permet pas à ces fichiers d'être renommé ou déplacé.

Donc, j'ai supprimé ces fichiers du projet, modifié leurs noms dans le fichier Explorer, les a ajoutés au projet et mis à jour le code comme dont j'avais besoin.

Cependant, ils n'apparaissent pas imbriqués, mais au même niveau que les fichiers .ascx.

a également essayé

a créé une application Web vide et pourrait l'ajouter là-bas, donc c'est quelque chose de spécifique au projet.

J'ai essayé d'ajouter le fichier comme existant après la copie dans l'explorateur de fichiers, avec l'intention de générer le code derrière des fichiers - il n'y a pas d'option convert à l'application Web , même lors de la sélection de la solution directement et même sous la forme de la solution. Menu du projet dans VS2015 pour mon projet, comme suggéré par Comment forcez-vous Studio Visual pour régénérer les fichiers .designer pour les fichiers ASPX / ASCX?


2 commentaires

Vous ne pouvez pas simplement copier et modifier des noms sur les fichiers. Les classes et espaces de noms sont toujours nommés comme les originaux et vous ne devez pas modifier le code généré. Je doute vraiment que cela fasse une différence, mais si vous recherchez les modèles d'élément pour "Formulaires Web Control" "à la place?


@CrowCoder ne trouve toujours rien, ce qui me frappe comme extrêmement étrange


4 Réponses :


3
votes

Maintenant que j'ai posté une bounty ...

Une fois que les éléments (.ascx, .ascx.cs et .ascx.designer.cs fichiers) ont été ajoutés au projet et leur contenu mis à jour pour refléter Modifications souhaitées (attribut de codeBeHind, noms de classe, etc.), modifiez simplement votre fichier .projitems pour le projet (j'ai utilisé Notepad ++ pour cela, pas sûr si cela compte). p>

Vous trouverez deux lignes qui ressemblent à ceci comme ceci - recherchez vos noms de fichiers pour trouver facilement: p> xxx pré>

si vous avez d'autres fichiers similaires que vous " Je vais voir qu'ils ont une personne à charge sur le nœud. Ajout de ce nœud et le rechargement en VS vous permettra de vous aider à savoir: p>

<Compile Include="$(MSBuildThisFileDirectory)MyPath\UserControls\MyUserControl.ascx.cs" >
  <SubType>ASPXCodeBehind</SubType>
  <DependentUpon>MyUserControl.ascx</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)MyPath\UserControls\MyUserControl.ascx.designer.cs" >
  <DependentUpon>MyUserControl.ascx</DependentUpon>
</Compile>


1 commentaires

Il existe une extension de VS pratique appelée "éléments imbriqués" qui vous permet de nier des fichiers dans l'explorateur de solution (exactement comment vous avez à la main ici) mais à travers l'interface utilisateur. #Conseillé



7
votes

On dirait que le problème principal ici est que vous ne pouvez pas ajouter un contrôleur d'utilisateurs de formulaires Web à l'aide de Visual Studio, donc je tenterai de résoudre ce problème.

Je suppose que c'est ce que vous recherchez déjà, mais c'est ce que je fais lorsque je veux ajouter un nouveau contrôle utilisateur des formulaires Web. J'ai cliqué avec le bouton droit de la souris sur la solution Explorer, je vais ajouter, et je clique sur Web Forms Contrôle de l'utilisateur. Entrez la description de l'image ici

Cependant, je suppose que cela n'est pas disponible pour vous. Donc, le prochain endroit où je voudrais regarder est en sélectionnant "nouvel élément" lorsque j'ai cliqué avec le bouton droit de la souris sur l'explorateur de solutions. Ensuite, dans la nouvelle boîte de dialogue Ajouter un nouvel article, j'irais à Visual C # => Web => Commande utilisateur des formulaires Web. Entrez la description de l'image ici

Si ces deux choses ne sont pas des options, je vérifierais que vous disposez des composants Web supplémentaires installés dans Visual Studio. Il ne semble pas que vous ayez dit quelle version de Visual Studio que vous utilisez, alors je vais assumer que c'est Visual Studio 2017. Ouvrez votre installateur Visual Studio 2017, puis cliquez sur le bouton Modifier. Choisissez ASP.NET et développement Web. Ces composants doivent vous donner les options de modèle. Même si vous ne parlez pas de VS17, les installateurs de Studio Visual précédents sont similaires à modifier votre installation et ajoutent les composants Web.

 Entrez la description de l'image ici

Enfin, surtout si vous avez la possibilité de vous mettre à votre disposition dans d'autres projets, mais pas celui-ci, je sais que Visual Studio masquera des options / des modèles qui ne correspondent pas à votre type de projet. Ouvrez votre fichier .CSPROJ de votre projet dans votre éditeur de texte préféré (apparemment NotePad ++) et allez à propos de la ligne 13, où vous devriez trouver une liste délimitée de semi-colonie de ProjectTypeguids. Dans mon exemple ci-dessous, j'ai deux: 349C5851-65DF-11DA-9384-00065B846F21 et FAE04EC0-301F-11D3-BF4B-00C04F79FBC. Le premier représente ASP.NET MVC 5. Ce dernier représente C #. Le premier GUID est la raison pour laquelle Visual Studio considère celui-ci un projet Web. Une liste des gichres de type de projet sont disponibles ici . Entrez la description de l'image ici


0 commentaires

0
votes

J'ai converti mon projet de VB en C # et c'était en quelque sorte le traitant en tant que projet WinForm. Plus tard, j'ai découvert que les projectTypeguids mentionnés dans les fichiers .csproj détermine le type de projet.

ASP.NET 5 {8BB2217D-0F2D-49D1-97BC-3654ED321F3B}

ASP.NET MVC 1 {603C0E0B-DB56-11DC-BE95-000D561079B0}

ASP.NET MVC 2 {F85E285D-A4E0-4152-9332-AB1D724D3325}

ASP.NET MVC 3 {E53F8FEA-EAE0-44A6-8774-FFD645390401}

ASP.NET MVC 4 {E3E379DF-F4C6-4180-9B81-676953ABE47}

ASP.NET MVC 5 {349C5851-65DF-11DA-9384-00065B846F21}

C # {FAE04EC0-301F-11D3-BF4B-00C04F79FBC}

C ++ {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}

Base de données {A9ACE9BB-CCEE-4E62-9AA4-C7E7C5BD2124}

Base de données (autres types de projets) {4F174C21-8C12-11D0-8340-0000F80270F8}

Cabilitation de déploiement {3EA9E505-35AC-4774-B492-AD1749C4943A}

Module de fusion de déploiement {06A35CCD-C46D-44D5-987B-CF40FF872267}

Setup de déploiement {978C614F-708E-4E1A-B201-565925725DBA}

Cabine de périphérique intelligent de déploiement {AB322303-2255-48EF-A496-5904EB18DA55}

Système distribué {F135691A-BF7E-435D-8960-F99683D2D49C}

Dynamique 2012 Axe C # dans Aot {BF6F8E12-879D-49E7-ADF0-5503146B24B8}

F # {F2A71F9B-5D33-465A-A702-920D77279786}

j # {e6fdf86b-f3d1-11d4-8576-0002a516ece8}

Dispositif intelligent Legacy (2003) (C #) {20D4826A-C6FA-45DB-90F4-C717570B9F32}

Dispositif intelligent Legacy (2003) (vb.net) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}

Micro Framework {B69E3092-B931-443C-ABE7-7E7B65F2A37F}

Modèle-View-contrôleur V2 (MVC 2) {F85E285D-A4E0-4152-9332-AB1D724D3325}

Modèle-View-contrôleur V3 (MVC 3) {E53F8FEA-EAE0-44A6-8774-FFD645390401}

Modèle-View-contrôleur V4 (MVC 4) {E3E379DF-F4C6-4180-9B81-6769533ABE47}

Modèle-View-contrôleur V5 (MVC 5) {349C5851-65DF-11DA-9384-00065B846F21}

Mono pour Android {EFBA0AD7-5A72-4C68-AF49-83D382785DCF}

monoTouch {6bc8ed88-2882-458C-8E55-DFD12B67127B}

Reliure MonoTouch {F5B4F3BC-B597-4E2B-B552-EF5D8A32436F}

Bibliothèque de classe portable {786C830F-07A1-408B-BD7F-6EE04809D6DB}

Dossiers de projet {66A26720-8FB5-11D2-AA7E-00C04F688DDE}

SharePoint (C #) {593B0543-81F6-4436-BA1E-4747859CAAE2}

SharePoint (vb.net) {EC05E597-79D4-47F3-ADA0-324C4F7C7484}

SharePoint Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}

Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}

Dispositif intelligent (C #) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}

Dispositif intelligent (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}

Dossier de solution {2150E333-8FDC-42A3-9474-1A3956D46DE8}

TEST {3AC096D0-A1C2-E12C-1390-A8335801FDAB}

Bibliothèque de classe Windows universelle {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A}

vb.net {F184B08F-C81C-45F6-A57F-5ABD9991F28F}

Outils de base de données visuels {C252FEB5-A946-4202-B1D4-9916A0590387}

Extension de projet d'installateur Visual Studio 2015 {54435603-DBB4-11D2-8724-00A0C9A8B90C}

Outils Visual Studio pour applications (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}

Outils Visual Studio pour Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}

Application Web {349C5851-65DF-11DA-9384-00065B846F21}

Site Web {E24C65DC-7377-472B-9ABA-BC803B73C61A}

Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79FBC}

Windows (vb.net) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}

Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}

Fondation de communication Windows (WCF) {3D9AD99F-2412-4246-B90B-4AA41C64699}

Windows Phone 8/8.1 Blank / Hub / webview app {76F1466A-8B6D-4E39-A767-685A06062A39}

Téléphone Windows 8/8.1 App (C #) {C089C8C0-30E0-4E22-80C0-CE093F111A43}

Téléphone Windows Phone 8/8.1 App (vb.net) {db03555f-0C8B-43BE-9FF9-57896B3C5E56}

Fondation de présentation Windows (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}

STORE WINDOWS Store (Metro) Applications & Composants {BC8A1FFA-BEE3-4634-8014-F334798102B3}

flow de travail (C #) {14822709-B5A1-4724-98CA-57A101D1B079}

Flux de travail (vb.net) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}

Fondation de flux de travail {32F31D43-81CC-4C15-9DE6-3FC5453562B6}

xamarin.android {EFBA0AD7-5A72-4C68-AF49-83D382785DCF}

xamarin.ios {6BC8ED888-2882-458C-8E55-DFD12B67127B}

XNA (Windows) {6D335F3A-9D43-41B4-9D22-F6F17C4BE596}

xna (xbox) {2DF5C3F4-5A5F-47A9-8E94-23B4456F55E2}

XNA (Zune) {D399B71A-8929-442A-A9AC-8BEC78BB2433}

Pour plus de détails, reportez-vous à la référence ici < / a>


0 commentaires

0
votes

mon erreur

J'ai choisi le mauvais fichier avec l'extrémité ASCX (je pensais que cela ne fait aucune différend). Vous voyez le mauvais article dans la photo: Entrez la description de l'image ici

ma solution

J'ai dû faire défiler plus jusqu'à la droite (Contrôle des utilisateurs de formulaires Web) pour pouvoir l'ajouter. Voir le bon article sur la photo: Entrez la description de l'image ici


1 commentaires

Je sais que j'étais gentil de stupide parce que je viens de regarder la fin du fichier. Mais peut-être que ma solution aidera quelqu'un