8 votes

Le chemin virtuel ** renvoie à une autre application, ce qui n'est pas autorisé.

Est-ce possible ?

J'ai une application web avec des contrôles d'utilisateur dans le répertoire suivant : C:\Users\Visual Studio 2010 \WebSites\MS\Controls

J'ai une autre application web sur ma machine avec l'emplacement suivant : C:\Users\Visual Studio 2010 \WebSites\TestSite

TestSite peut-il charger le userwebcontrol à partir d'un répertoire différent.

J'ai essayé ce qui suit dans TestSite :

myUserControl = (UserControl)LoadControl("../WebSites/CMS/Controls/test.ascx");

Mais je reçois l'erreur : Le chemin virtuel '/WebSites/MS/Controls/test.ascx' correspond à une autre application, ce qui n'est pas autorisé.

J'ai essayé d'utiliser ~ au début, mais le résultat est le suivant : le fichier '/TestSite/MS/Controls/Editor.ascx' n'existe pas.

Cela peut-il être fait ?

5voto

Dekker500 Points 596

UserControl.LoadControls(path) utilise un CHEMIN VIRTUEL et non un chemin du système de fichiers. Si la racine de votre projet VisualStudio est C:\Users\Visual Studio 2010 \WebSites\TestSite alors c'est le niveau le plus bas auquel l'application pourra se référer (en utilisant le '~').

2voto

Dinesh Points 21

Dans mon cas, il s'agissait d'une valeur erronée pour le paramètre Layout dans le fichier cshtml. Il doit être

Layout = "~/Views/Shared/_MySiteMaster.cshtml"

au lieu de

Layout = "/Views/Shared/_MySiteMaster.cshtml"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X