首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的方法在ImageUrl属性中调用它时不执行?

为什么我的方法在ImageUrl属性中调用它时不执行?
EN

Stack Overflow用户
提问于 2016-03-14 08:41:21
回答 1查看 349关注 0票数 2

我有一个ASP.NET应用程序,我希望有一个不同的标志取决于环境(生产,质量等)因此,在我的Site.Master页面中,我有一个这样的图像:

代码语言:javascript
复制
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/logo_<%= EnvironmentHelper.GetRunningEnvironment() %>.png" AlternateText="logo"/>

背后的代码是:

代码语言:javascript
复制
    public static class EnvironmentHelper
{ public static string GetRunningEnvironment()
    {
        return string.IsNullOrEmpty(ConfigurationManager.AppSettings["RunningEnvironment"]) 
            ? "dev"
            : ConfigurationManager.AppSettings["RunningEnvironment"];
    }}

我已经在Site.Master页面中添加了命名空间,因此可以调用该方法:

代码语言:javascript
复制
<%@ Import Namespace="Business.Helpers" %>

在Web.config文件中,我在appSettings部分创建了一个变量,如下所示:

代码语言:javascript
复制
<add key="RunningEnvironment" value="dev"/>

我的图像文件夹中有几张图片,里面有所有的环境(logo_prod.png,logo_dev.png等)

问题是徽标没有显示,图片的网址是:

代码语言:javascript
复制
http://localhost/myapp/Images/logo_%3C%25=%20EnvironmentHelper.GetRunningEnvironment()%20%25%3E.png

为什么没有对GetRunningEnvironment方法进行评估?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 09:05:01

不允许在该字段中使用服务器标记。

您可以通过从后面的代码中设置URL来解决这个问题:

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    this.Image1.ImageUrl = "~/Images/logo_" + EnvironmentHelper.GetRunningEnvironment() + ".png";
}

或者直接使用HTML img元素:

代码语言:javascript
复制
<img src="<%= "~/Images/logo_" + EnvironmentHelper.GetRunningEnvironment() + ".png" %>" alt="logo" />
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35982868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档