Server.MapPath("/MyWebSite");
返回包含指定网站的虚拟目录的物理路径。若要读取代码隐藏模块中的 MapPath,请使用 HttpContext.Current.Server.MapPath。 以上的话来自于MSDN,请问一下
1 什么叫代码隐藏模块?
2 什么时候用Server.MapPath,什么时候用HttpContext.Current.Server.MapPath
3 一般大家在开发时,使用什么来获取虚拟目录的物理路径阿?谢谢:)

解决方案 »

  1.   

    1 什么叫代码隐藏模块?
    2 什么时候用Server.MapPath,什么时候用HttpContext.Current.Server.MapPath
    3 一般大家在开发时,使用什么来获取虚拟目录的物理路径阿?1.服务器控件中的代码也叫代码隐藏模块
    2.一般在页面上使用的时候使用第一种。在自定义服务器控件中的话使用第二种。
    3.Server.MapPath();使用不多。
      

  2.   

    1.代码调用的dll需要调用路径,如:自定义控件
    2.物理路径和虚拟路径的区别吧
    3.用../../
    以上为个人见解,不确定
      

  3.   

    1.代码隐藏模块?
       就是你定义一个继承与Page的类里的代码吧
    2.一般在.aspx页面的类里(.aspx.cs)使用Server.MapPath;在继承与Page的类里(.cs)使用HttpContext.Current.Server.MapPath,因为这个类没有页面的实力化,不能指定到具体的页面,其实Server.MapPath的全写应该是this.Page.Server.MapPath,一个是通过对象调用(this),一个是类调用(HttpContext.Current,(当前页面)),因为使用HttpContext.Current的时候,Page类一般还没有被实力化。
    3.在页面的类里一般使用Server.MapPath,在自定义页面的基类里使用HttpContext.Current.Server.MapPath
      

  4.   

    标记,学习,看楼上说的都不是很清楚,还是迷茫我的感觉就是,直接页面的cs里,用server.mappath(".").......在app_code里的代码里使用 HttpContext.Current.Server.MapPath其他的不清楚了,
      

  5.   

    因为非页面类是不继承于Page 的,当被页面一级调用时被认为是隐藏模块,因不继承自Page 所以要取得上下文就只有用 获得当前上下文的方法了
      

  6.   

    这个应该是翻译的不够好..什么时候用Server.Mappath()
    =============================
    在页面的文件中可以直接用,因为Page类有个Server属性返回一个Server对象什么时候用HttpContext.Current.Server.MapPath
    ==============================================
    在普通的类文件(cs文件中),因为类是不知道它将来会被用于网站中的,所以只有通过上下文才能找到Server对象