2010-05-02 7 views
1

Je me réfère à cet article de Jimmy Bogardglobal.asax et solution ASP.NET MVC Organisation

Il suggère deux projets pour organiser votre solution ASP.NET MVC.

Fondamentalement, un projet pour le code et un autre pour le rendu

Ma préoccupation concerne fichier global.asax.

Jimmy a suggéré de séparer global.asax de Global.asax.cs et les mettre dans deux différents projets

Quand je l'ai fait, je ne pouvais pas compiler ma solution.

J'ai reçu cette erreur: Impossible de charger le type 'MyProject.Web.Global'.

Quelqu'un peut-il m'aider et m'a montrer comment résoudre ce problème?

Merci

Répondre

2

Il est si facile de reproduire le problème

  • Créer une nouvelle application MVC2: Web.UI
  • Ajouter à la solution, un nouveau projet de type bibliothèque de classes: Web.Code
  • Passer de Web.UI à Web.Code les éléments suivants:
    • Contrôleurs
    • modèles
    • G lobal.asax.cs
  • Dans ce second projet, ajoutez une référence à
    • System.Configuration
    • System.Web
    • System.Web.Mvc
    • System.Web.ApplicationSewrvices
    • System.ComponentModel.DataAnnotations
    • System.Web.Routage

Compilez et exécutez


MISE À JOUR

J'ai trouvé ce qui était erroné

dans le fichier global.asax, je ne l'indiquais nouvel espace de noms dans l'attribut "inherits"

<%@ Application Inherits="Project2.Global" Language="C#" %> 
2

Sans voir votre code, il est difficile de deviner exactement ce que le problème est. Lorsque vous créez un projet MVC le balisage Global.asax a quelque chose comme ce qui suit:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApp.MvcApplication" Language="C#" %> 

Pour mettre les Global.asax.cs dans un autre projet, vous voulez probablement enlever le CodeBehind = « ... » déclaration de Global.asax et vous devez modifier la déclaration Inherits = "..." pour référencer l'espace de noms et le nom de classe corrects tels qu'ils sont définis dans Global.asax.cs.