Loading a WebUserControl
本文关键字:WebUserControl Loading | 更新日期: 2023-09-27 18:10:58
我正在尝试加载一个具有会话id的WebUserControl,如:
string loadURL = "/CPCLeadScrubExceptions.ascx?&SessionID=" + SessionId;
Control control = LoadControl(loadURL);
holder.Controls.Add(control);
当我这样做时,我得到以下错误:"虚拟路径'/cpcleadscrubeexceptions .ascx?&SessionID=a545a9e1-4085-419b-aff0-1a27a76d01e4'映射到另一个应用程序,这是不允许的。"
这个错误很明显。您正在尝试加载/CPCLeadScrubExceptions.ascx
,它映射到另一个应用程序。
。你的应用程序是http://mydomain.com/myapp/Something.aspx
,所以你不能访问任何不在/myapp/
路径下的东西。你需要纠正你的路径是相对的(第一次尝试没有'/'也许)。
编辑:LoadControl
采用控制路径,而不是带有查询字符串的请求URL。ASP。. NET使用参数来定位要加载的控件,它本身不发出请求,因此不需要SessionID。
您提供的路径不是虚拟路径(它们以~/
开头)
加上会话id不应该在虚拟路径中(您在这里没有做请求),您可以在创建控件后设置它,如control.SessionID = SessionId
如果控件在您调用它的同一个应用程序中,您是否尝试过使用:
string loadURL = "~/CPCLeadScrubExceptions.ascx?&SessionID=" + SessionId;
(注意~
符号)