使用资源文件和asp:literal标记

本文关键字:literal 标记 asp 资源 源文件 | 更新日期: 2023-09-27 18:16:56

我有一个奇怪的问题,我似乎无法解决。我使用的是WebForms和。net 4.5。

我在根目录下的Images文件夹中有一堆图像。这些图像都在一个文件夹中,对应于一些本地的。它是这样的。

Root
    -Images
        -en-US
            -flag.jpg
        -es-MX
            -flag.jpg

我正在使用资源文件来存储图像路径。

现在实际的问题是,我不确定如何使用相对路径来定义img src与资源文件。通常我可以把runat="server"在img标签,这将让我指定src="~/somepath,但由于我使用asp文字作为源的一部分,它似乎不能正确解释标签。如果我不使用~ (root),那么一旦用户切换到不在根目录中的页面,资源就不会加载,因为它会尝试基于新位置加载它。例如:someurl/UserPages/Images/flag.jpg <=应该是someurl/Images/flag.jpg .

我的img标签是这样的:

<img src="~/Images/<asp:Literal ID="test" meta:resourcekey="test" runat="server" Text="" />" runat="server" alt="Flag" height="42" width="42" />

根本不起作用,因为它将路径解释为

http://ipaddr:port/~/Images/

我已经尝试使用jQuery来设置img标签的src,但它没有解决这个问题。

这些是我试图用来解决我的问题的一些知识库文章,但没有成功。

http://msdn.microsoft.com/en-us/magazine/cc163566.aspx

HTML图像和ASP。. NET图像和相对路径

如何在asp.net网站中使用图像资源?

http://forums.asp.net/t/1677822.aspx/1

asp.net中的图像定位

事先感谢你能给予的任何帮助。

编辑:

我试着把图片放在资源文件本身,但经过一番挖掘,我发现这不是一个很好的解决方案,为web应用程序。还是纠结于我最初的问题。(

还是没有运气!

使用资源文件和asp:literal标记

你可以这样解决:

your_asp_literal.Text = "<img src='"+ GetGlobalResourceObject("your_resx_file", "your_picture_path").ToString() + "' alt='your_alt' height='42' width='42'/>";