img标记资源文件和asp:literal

时间:2013-06-05 12:47:33

标签: c# asp.net .net image localization

我有一个奇怪的问题,我似乎无法修复。我正在使用WebForms和.NET 4.5。

我的根目录中的Images文件夹中有一堆图像。这些图像分别位于与某些本地对应的文件夹中。它看起来像这样。

Root

    -Images

        -en-US

            -flag.jpg

        -es-MX

            -flag.jpg

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

现在实际问题是我不确定如何使用相对路径来结合资源文件定义img src。通常我可以在img标签中放入runat =“server”,这样我就可以指定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 img and ASP.NET Image and relative paths

How to use image resource in asp.net website?

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

Image localization in asp.net

提前感谢您提供任何帮助。

修改

我尝试将图像放在资源文件本身中,但经过一些挖掘后我发现这对Web应用程序来说不是一个好的解决方案。仍然坚持我原来的问题。 :(

仍然没有运气!

1 个答案:

答案 0 :(得分:1)

你可以这样解决:

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