虚拟路径**映射到另一个应用程序,这是不允许的

时间:2010-10-21 15:34:33

标签: c# .net

这可能吗:

我在以下目录中有usercontrols的web应用程序: C:\ Users \ Visual Studio 2010 \ WebSites \ MS \ Controls

我的机器上有另一个Web应用程序,位置如下: C:\ Users \ Visual Studio 2010 \ WebSites \ TestSite

TestSite可以从不同目录加载userwebcontrol。

我在TestSite中尝试了以下内容:

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

但我收到错误:虚拟路径'/WebSites/MS/Controls/test.ascx'映射到另一个应用程序,这是不允许的。

在开始时使用〜但尝试使用'/TestSite/MS/Controls/Editor.ascx'文件不存在。

可以这样做吗?

2 个答案:

答案 0 :(得分:5)

UserControl.LoadControls(path) uses a VIRTUAL PATH,而不是文件系统路径。如果您的VisualStudio项目的根目录是C:\ Users \ Visual Studio 2010 \ WebSites \ TestSite,那么该应用程序将能够引用(使用“〜”)。

答案 1 :(得分:2)

就我而言,cshtml文件中Layout的值是错误的。 它应该是

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

而不是

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