Chris
Chris

Reputation: 470

The virtual path ** maps to another application, which is not allowed

Is this possible:

I have web application with usercontrols in the following directory : C:\Users\Visual Studio 2010\WebSites\MS\Controls

I have another web application on my machine with the following location : C:\Users\Visual Studio 2010\WebSites\TestSite

Can TestSite load the userwebcontrol from different directory.

I tried the following in TestSite:

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

But i get the error: The virtual path '/WebSites/MS/Controls/test.ascx' maps to another application, which is not allowed.

Tried using ~ at the beginning but comes up with The file '/TestSite/MS/Controls/Editor.ascx' does not exist.

Can this be done?

Upvotes: 8

Views: 9541

Answers (2)

Dinesh
Dinesh

Reputation: 21

In my case, it was a wrong value for Layout in the cshtml file. It should be

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

instead of

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

Upvotes: 2

Dekker500
Dekker500

Reputation: 821

UserControl.LoadControls(path) uses a VIRTUAL PATH, not a file-system path. If your VisualStudio project's root is C:\Users\Visual Studio 2010\WebSites\TestSite, then that is as low as that application will be able to reference (using the '~').

Upvotes: 5

Related Questions