2010-08-10 12 views
0

J'ai converti une application SiteFinity (C#) d'un site Web en un WebApplicationProject. Tout fonctionne très bien ... saufSitefinity WebSite au projet d'application Web - app_code fun!

J'avais l'habitude d'avoir dans mon App_Code une classe appelée MaterialsModule qui hérite de la classe de base WebModule.

Problème: Sitefinity ne voit pas automagiquement cette classe plus

J'ai essayé d'ajouter un espace de noms à la classe et l'ajouter au code derrière ici (ce qui est la page où je me attends cette page MaterialModule pour montrer)

http://localhost/fmwebapp1/Sitefinity/Admin/Modules.aspx

public class MaterialsModule : WebModule 
{ 
    public MaterialsModule() 
    { 
    } 

    public override IList<Telerik.Web.IToolboxItem> Controls 
    { 
     get 
     { 
      return new List<IToolboxItem>(
       new ToolboxItem[] 
       { 
        new CmsToolboxItem("~/Custom/Modules/Materials/Frontend/Controls/MaterialsList.ascx", "Materials", "Materials List", "Displays list of all materials") 
       }); 
     } 
    } 

    public override string Description 
    { 
     get { return "This is the Materials Module"; } 
    } 

    public override string Name 
    { 
     get { return "Materials"; } 
    } 

    public override string Title 
    { 
     get { return "Materials"; } 
    } 

    public override System.Web.UI.Control CreateControlPanel(System.Web.UI.TemplateControl parent) 
    { 
     return new MaterialsControlPanel(); 
    } 

Répondre

0

Vous pouvez essayer de supprimer le fichier page.aspx.designer.vb, puis cliquez droit sur le page.aspx et sélectionnez "Convertir en application Web" pour recréer le fichier du concepteur. Bien sûr, cela suppose que le problème est avec ce fichier.

+0

Merci ironsam - le .designer a l'air bien .. Je l'ai refait juste pour voir :-) Aussi essayé d'amener tous mes fichiers dans le même répertoire que le rendu page.aspx ... pas de chance encore ... –

+0

Donc quand vous référencez 'MaterialsModule' dans le' page.aspx', il ne compilera pas? Vous pouvez essayer de supprimer l'espace de nom ou d'ajouter l'espace de noms à l'espace de noms importé du projet (dans les paramètres du projet). – ironsam

0

Dans un projet de site Web, tous les assemblys du dossier ~/bin sont automatiquement ajoutés au GAC.

Dans un projet d'application Web, vous devez définir explicitement les assemblys inclus dans le GAC.

-

Je crois que vous pouvez résoudre ce problème en ajoutant des références d'assemblage de Sitefinity à votre projet.

Pour ce faire:

  1. rght-cliquez sur votre projet dans la solution Explorateur
  2. Cliquez sur Ajouter Références
  3. Rechercher des assemblées
  4. Accédez au Sitefinity dossier ~/bin
  5. Ajouter références aux fichiers DLL Sitefinity

WebModule devrait alors être reconnu comme une classe définie.

-

Bonnes nouvelles, Sitefinity 4.0 (cette année) soutient des projets d'application Web par défaut.