如何获取用户控件(.ascx)的物理文件名 如题.在后置代码中如何获取该控件的物理文件名而在一个页面(.aspx)则可通过如下方式获取:Response.Write(Server.MapPath(Request.Path)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AppDomain.CurrentDomain.BaseDirectory这是根目录AppDomain.CurrentDomain下面还有些其他的目录你拼下就出来了 晕....Server.MapPath(Request.Path)这不都已经出来了嘛,没人请求这个页面,你写的代码还有什么用?请求的时候,Request不就有了嘛 ls两位大哥,我要的不是当前请求的页面的路径,我要的就是这个页面包含的某个用户控件的路径。嘿嘿,AppDomain都来了,那个获取的是应用程序对象,不是某个页面或控件对象。Server.MapPath(Request.Path)获取到的始终是当前的页面路径。倒是可以用Server.MapPath(this.TemplateSourceDirectory)取到这个控件所在的目录。 一般文件跟类名是一样的,你可以GetType 再处理下 OK,OK,七哥,Sorry。我觉得我的问题已经很明确了,比如说我们经常要获取某个页面(.aspx)的物理文件路径,可以这样:Server.MapPath(Request.Path);现在,在这个页面里有个用户控件(.ascx),那么我该如何才能取得到这个用户控件的物理文件路径呢? this.Parent.Page.Server.MapPath("")在控件里 不懂你到底问的是什么。不过,我估计我说一个你的问题,你自己也就含糊了,所以需要想好了再问:谁说Request.Path中是当前页面对象的地址?它只是浏览器请求服务器端的地址。例如你在Button控件中使用PostbackUrl参数得到的结果,以及UrlRewrite得到的结果,Server.Transfer得到的结果,甚至页面可能根本没有aspx文件而仅是dll中编译好的一个Page的子类的实例,等等。可能你用那个 Request.Path (客户端请求url)想当然地认为是当前页面的路径。据此逻辑,我就不知道你对用户控件又会怎样(错误地)推测了。你最好还是重新整理自己的设计思路,用更加细致、无歧异的描述来设计。 简单的说:可以在一个页面如default.aspx的后置代码中,可以通过Server.MapPath(Request.Path)取到这个文件的物理地址,如 C:\Inetpub\wwwroot\test\Default.aspx,同样,我需要在一个用户控件如test.ascx的后置代码中获取这个控件的物理文件地址,如:C:\Inetpub\wwwroot\test\test.ascx 但可以通过Server.MapPath(this.TemplateSourceDirectory)取到这个控件所在的目录,如:C:\Inetpub\wwwroot\test在我的项目中这个问题当然有多种解决办法,但是,这依然是个问题,如何解决呢?查了许多文档,都没有找到解决的办法。 http://topic.csdn.net/t/20060109/07/4505002.html这个里面有讨论 这个问题确实不能直接解决。我是这样解决的:Path.Combine(Server.MapPath(this.TemplateSourceDirectory),this.GetType().Name.ToLower().Replace("_ascx",".ascx"))也只有这样了。 分享一下昨天的笔试题,大家一起想想? 感觉自己行的进来 请大虾相助,关于多人访问网页出错的问题 求教DataGrid列表中只循环当前行中CheckedBoxList选中的值 关于在线编辑器的问题,请哥哥们帮忙,急。。。。。。。。。。 (发分100)各位大哥帮帮我,急急!!!!!!!!!! 小弟有问: 如何用dataset来更新数据库? 未将对象引用设置到对象的实例。怎么办???急求! 求助...绑定问题. wise for .net的安装序列号是什么啊? 一个javascript的循环问题 C#实体类辅助生成工具
这是根目录
AppDomain.CurrentDomain下面还有些其他的目录
你拼下就出来了
嘿嘿,AppDomain都来了,那个获取的是应用程序对象,不是某个页面或控件对象。
Server.MapPath(Request.Path)获取到的始终是当前的页面路径。倒是可以用Server.MapPath(this.TemplateSourceDirectory)取到这个控件所在的目录。
我觉得我的问题已经很明确了,比如说我们经常要获取某个页面(.aspx)的物理文件路径,可以这样:Server.MapPath(Request.Path);现在,在这个页面里有个用户控件(.ascx),那么我该如何才能取得到这个用户控件的物理文件路径呢?
在控件里
可以在一个页面如default.aspx的后置代码中,可以通过Server.MapPath(Request.Path)取到这个文件的物理地址,如 C:\Inetpub\wwwroot\test\Default.aspx,同样,我需要在一个用户控件如test.ascx的后置代码中获取这个控件的物理文件地址,如:C:\Inetpub\wwwroot\test\test.ascx 但可以通过Server.MapPath(this.TemplateSourceDirectory)取到这个控件所在的目录,如:C:\Inetpub\wwwroot\test在我的项目中这个问题当然有多种解决办法,但是,这依然是个问题,如何解决呢?查了许多文档,都没有找到解决的办法。
这个里面有讨论
我是这样解决的:Path.Combine(Server.MapPath(this.TemplateSourceDirectory),this.GetType().Name.ToLower().Replace("_ascx",".ascx"))
也只有这样了。