You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

旧版ASP.NET项目如何从本地资源文件设置图片src实现多语言本地化

可以通过LocalResource设置img的src属性,你之前的写法失效是因为runat="server"的服务器控件属性中不支持直接嵌套<%= %>内联代码块,下面是两种可直接落地的实现方案:

方案1:资源表达式绑定(无需写后台代码,推荐)

  1. 先调整资源文件配置:
    • 三个资源文件(默认/德语/法语)中各新增一条资源条目,Name设为StepImgSrc
    • 英文默认值填~/images/e/step.jpg,德语填~/images/g1/step.jpg,法语填~/images/f1/step.jpg
  2. 修改img标签写法,直接用ASP.NET内置的资源表达式绑定src:
<img id="img78" src='<%$ Resources: StepImgSrc %>' runat="server" alt="image2" width="267" />

方案2:后台代码赋值(兼容性更高,不易出错)

  1. 资源文件可以选择和方案1一致配置全路径,也可以只存路径分段:
    • 新增资源条目Name为ImgFolderSegment,默认值e,德语g1,法语f1
  2. 打开对应UserControl的后台代码文件Activate.ascx.cs,在Page_Load事件中添加赋值逻辑:
protected void Page_Load(object sender, EventArgs e)
{
    // 读取本地资源的路径分段,兜底默认值为英文路径
    string folder = GetLocalResourceObject("ImgFolderSegment")?.ToString() ?? "e";
    // 拼接路径并赋值给img控件,ResolveUrl会自动解析~开头的虚拟路径
    img78.Src = ResolveUrl($"~/images/{folder}/step.jpg");
}

注意事项

  • 确保资源文件的访问修饰符设置为public,否则会出现读取不到资源的问题
  • 不需要给图片相关的资源键加.Text后缀,此前缀是专门给Label、Literal这类文本控件做隐式资源绑定时用的

内容的提问来源于stack exchange,提问作者poocha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:30:00