使用资源文件和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.aspxHTML图像和ASP。. NET图像和相对路径
如何在asp.net网站中使用图像资源?
http://forums.asp.net/t/1677822.aspx/1asp.net中的图像定位
事先感谢你能给予的任何帮助。
编辑:我试着把图片放在资源文件本身,但经过一番挖掘,我发现这不是一个很好的解决方案,为web应用程序。还是纠结于我最初的问题。(
还是没有运气!
你可以这样解决:
your_asp_literal.Text = "<img src='"+ GetGlobalResourceObject("your_resx_file", "your_picture_path").ToString() + "' alt='your_alt' height='42' width='42'/>";