▲请教各位高手一个关于用户控件动态载入的问题!各位DX请进来看看!

cnlamar 2004-02-18 06:17:57
假设现在有如下文件
index.aspx
basepage.cs
/scheme/index.ascx

我想在用户访问index.aspx的时候将请求转发给/scheme/index.ascx,于是我在
index.aspx中使用

Control MyControls=LoadControl("./Scheme/index.ascx");
this.Controls.Add(MyControls);

来将/scheme/index.ascx加载到了index.aspx中,但这样做的话,每个.ascx必须有一
个对应的.aspx,对于以后的扩展很不方便

于是又采用了IHttpHandler来实现
利用IHttpHandler将*.aspx的请求全部交给了basepage.cs来执行
而basepage.cs中则分析了url中的aspx文件名,然后用与上面同样的方法来加载了
/scheme/index.ascx

问题出来了,以前的方法,没有任何问题,但换成basepage.cs来处理请求的时候出现
如下错误:

System.Web.HttpException: 虚拟路径“/Scheme/Index/index_list.ascx”映射到另
一个应用程序,这是不允许的。

问了问波仔,只要设置到网站根目录下,别用虚拟目录就可以了,可比较现实的
是,不是谁都可以放到根目录下或者开端口或者新开虚拟主机,很多时候用户只能建立一个虚拟目录而已,想请教各位高手,此问题如何解决?

详细错误信息如下:

源错误:

行 61: AscxName=AscxName+"_"+ClassInfo["ListMode"].ToString();
行 62: }
行 63: Control MyControls =
LoadControl("./Scheme/"+ClassInfo["Scheme"]+"/"+AscxName+".ascx");
行 64: this.Controls.Add(MyControls);
行 65: //MyControls.Page.DataBind();

源文件: d:\web_root\exs\exspage.cs 行: 63

堆栈跟踪:

[HttpException (0x80004005): 虚拟路径“/Scheme/Index/index_list.ascx”映射到
另一个应用程序,这是不允许的。]
System.Web.HttpRequest.MapPath(String virtualPath, String baseVirtualDir,
Boolean allowCrossAppMapping) +472
System.Web.UI.TemplateControlParser.CompileAndGetParserCacheItem(String
virtualPath, String inputFile, HttpContext context) +98
System.Web.UI.TemplateControlParser.GetCompiledType(String virtualPath,
String inputFile, HttpContext context) +13
System.Web.UI.UserControlParser.GetCompiledUserControlType(String
virtualPath, String inputFile, HttpContext context) +177
System.Web.UI.TemplateControl.LoadControl(String virtualPath) +41
Exs.Aspx.ExsPage.Page_Load(Object sender, EventArgs e) in
d:\web_root\exs\exspage.cs:63
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +720
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧