2009-05-29 7 views
0

J'ai utilisé le code suivant dans mes classes de code Web derrière le formulaire. Je veux l'utiliser dans mes fichiers .cs réguliers: par exemple, lors d'appels de base de données. Mais lorsque j'essaie de l'utiliser en dehors d'un formulaire Web, j'obtiens l'erreur suivante en essayant de mapper avec base.Request.ApplicationPath: 'object' ne contient pas de définition pour 'Request'. Quelle serait la manière simple et correcte de mapper à la racine dans un fichier de classe .cs normal dans un projet d'application Web?Comment faire pour mapper les chemins dans le fichier de classe sans formulaire ASP.NET

protected void LogError(string errMsg, string errTrace) 
    { 
     string mailSubject = "oops!"; 
     string mailBody = errMsg + errTrace; 

     System.Configuration.Configuration config 
      = WebConfigurationManager.OpenWebConfiguration(base.Request.ApplicationPath); 
     AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings"); 

     // Extract values from the web.config file 
     string toAddress = "[email protected]"; 
     string fromAddress = appSettings.Settings["FromEmailAddr"].Value; 
     string emailHost = appSettings.Settings["EmailHost"].Value; 

     mailProvider.SendMail(fromAddress, toAddress, mailSubject, mailBody.ToString()); 
    } 

Répondre

1

HttpContext.Current.Request.ApplicationPath.

1

Vous pouvez utiliser la classe HttpContext.Current pour référencer l'instance actuelle d'une page en dehors d'une classe Page.

Dans votre cas, vous souhaitez utiliser:

HttpContext.Current.Request 

Au lieu de:

base.Request 
+0

C'est un gravatar cool! Merci pour la solution, John vient de vous parler du post :-) – IrishChieftain

1

vous faites référence "base" qui fait référence à la page ou UserControl objet lorsque vivant à l'intérieur du code de l'interface utilisateur. Maintenant que vous l'avez déplacé hors de ce code, la nouvelle classe ne dérive pas de l'une de ces classes, vous devrez donc utiliser HttpContext.Current.Request à la place.

Questions connexes