【问题标题】:The virtual path ** maps to another application, which is not allowed虚拟路径**映射到另一个应用程序,这是不允许的
【发布时间】:2016-12-14 18:22:28
【问题描述】:

这可能吗:

我在以下目录中有带有用户控件的 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'不存在。

这个可以吗?

【问题讨论】:

  • 我在同样的情况下遇到同样的错误。这有没有得到解决?
  • 同样,尝试从另一个控制台应用程序加载用户控件,该应用程序没有虚拟路径的上下文,那么我们如何加载该用户控件?!有什么想法吗?
  • 如果您确实解决了这个问题,也希望得到更新。

标签: c# .net


【解决方案1】:

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

【讨论】:

  • 我的项目虚拟路径需要正确设置。谢谢。
【解决方案2】:

在我的例子中,Layout 在 cshtml 文件中的值是错误的。 应该是

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

而不是

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

【讨论】:

    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2011-03-14
    • 2013-02-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多