首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载WebUserControl

加载WebUserControl
EN

Stack Overflow用户
提问于 2011-10-11 03:40:04
回答 3查看 96关注 0票数 0

我正在尝试加载一个具有会话id的WebUserControl,例如:

代码语言:javascript
复制
string loadURL = "/CPCLeadScrubExceptions.ascx?&SessionID=" + SessionId;
Control control = LoadControl(loadURL);
holder.Controls.Add(control);

当我这样做时,我得到以下错误:“虚拟路径'/CPCLeadScrubExceptions.ascx?&SessionID=a545a9e1-4085-419b-aff0-1a27a76d01e4‘映射到另一个应用程序,这是不允许的。”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-11 03:41:28

好吧,错误是很明显的。您正在尝试加载/CPCLeadScrubExceptions.ascx,它映射到另一个应用程序。

例如,您的应用程序是http://mydomain.com/myapp/Something.aspx,因此您无法访问/myapp/路径以外的任何内容。您需要将您的路径更正为相对路径(第一次尝试时可能不带'/‘)。

编辑:LoadControl采用控制路径,而不是带有查询字符串的请求URL。ASP.NET使用参数来定位要加载的控件,它本身不发出请求,因此不需要SessionID。

票数 2
EN

Stack Overflow用户

发布于 2011-10-11 03:42:19

您提供的路径不是虚拟路径(它们以~/开头)

另外,会话id不应该在虚拟路径中(这里不是请求),您可以在创建控件后设置它,如control.SessionID = SessionId

票数 0
EN

Stack Overflow用户

发布于 2011-10-11 03:42:25

如果该控件位于您从中调用它的同一个应用程序中,您是否尝试过使用:

代码语言:javascript
复制
string loadURL = "~/CPCLeadScrubExceptions.ascx?&SessionID=" + SessionId;

(请注意~标志。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7717774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档