繁体   English   中英

ASP.NET在site.master页中未评估C#代码

[英]ASP.NET no evaluation of C# code in site.master page

我有一个ASP.NET应用程序,并且我希望根据环境(生产,质量等)使用不同的徽标,因此在我的Site.Master页面中,我的图像是这样的:

<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/logo_<%= EnvironmentHelper.GetRunningEnvironment() %>.png" AlternateText="logo"/>

后面的代码是这样的:

    public static class EnvironmentHelper
{ public static string GetRunningEnvironment()
    {
        return string.IsNullOrEmpty(ConfigurationManager.AppSettings["RunningEnvironment"]) 
            ? "dev"
            : ConfigurationManager.AppSettings["RunningEnvironment"];
    }}

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

<%@ Import Namespace="Business.Helpers" %>

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

<add key="RunningEnvironment" value="dev"/>

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

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

http://localhost/myapp/Images/logo_%3C%25=%20EnvironmentHelper.GetRunningEnvironment()%20%25%3E.png

为什么不评估GetRunningEnvironment方法?

您不允许在该字段内使用服务器标签。

您可以通过在代码后面设置网址来解决此问题:

protected void Page_Load(object sender, EventArgs e)
{
    this.Image1.ImageUrl = "~/Images/logo_" + EnvironmentHelper.GetRunningEnvironment() + ".png";
}

或直接使用HTML img元素:

<img src="<%= "~/Images/logo_" + EnvironmentHelper.GetRunningEnvironment() + ".png" %>" alt="logo" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM