【问题标题】:Image Control dosen't work图像控制不起作用
【发布时间】:2012-02-07 21:59:20
【问题描述】:

我有以下 ASP 代码:

<asp:DataList ID="dlGallery" runat="server"  
    <ItemTemplate>
        <div style="float: left; padding-right: 10px; text-align: center">
            <img src="<%= ApplicationPath%><%# Eval("ImageUrl") %>"width="80"/>               
    </ItemTemplate>
</asp:DataList> 

我收到此错误: 编译器错误消息:CS0103:名称“ApplicationPath”在当前上下文中不存在

这是什么意思?ApplicationPath 可能有什么问题?

提前致谢

【问题讨论】:

  • 后面的代码中有ApplicationPath属性吗?
  • ivowiblo,不,后面没有代码
  • 那么,哪个类包含 ApplicationPath 属性?也许你忘了调用 Request.ApplicationPath

标签: c# asp.net datalist itemtemplate


【解决方案1】:

我学会的第一个 .NET 技巧之一就是简单地将 附加到页面中任何路径的开头,例如:

/Images/Foo.gif' ... />

问题是,当请求一个文件时,它返回的是“root-relative”,没有尾部斜杠。这意味着当从网站的根文件夹请求页面时,Request.ApplicationPath 返回“/”。在上面的示例中,将写出以下字符串:

这在针对 localhost 开发时不会被选中,因为应用程序将位于网站根目录下的一级,这意味着将在斜杠“/”之后返回虚拟目录名称:

但是,如果从子文件夹中的页面请求页面,则路径将返回为“/FldrName”,上面的示例将正确解析为:

' 从根 ' 在虚拟目录中

【讨论】:

    【解决方案2】:

    尝试导入到 ApllicationPath 所在的 aspx 文件命名空间。

    <%@ Import Namespace="YourNamespace" %>
    

    或指定具有完整命名空间的变量src="&lt;%= YourNamespace.ApplicationPath%&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多