我有一个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方法进行评估?
发布于 2016-03-14 09:05:01
不允许在该字段中使用服务器标记。
您可以通过从后面的代码中设置URL来解决这个问题:
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" />https://stackoverflow.com/questions/35982868
复制相似问题