我安装了两套 Visual Studio,一套是 2010 Ultimate,另一套是 2012 Ultimate。我的网站中有两个页面显示与
PageLoad
上的页面关联的背景图像。这是从目录中提取图像并将其显示为背景图像的代码:
public partial class TechCall : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder script = new StringBuilder();
script.Append("<script type=\"text/javascript\">");
script.Append("document.body.style.background = \"url('/Cyber7th/Images/CPUBack2nd.jpg')\";");
script.Append("document.body.style.backgroundRepeat = 'no-repeat';");
script.Append("</script>");
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "changeBackground", script.ToString());
}
}
另一个页面有相同的代码,但只是引用了不同的图像,是这样的:
public partial class Build_It : System.Web.UI.Page
编辑:页面应如下所示:
现在在 Visual Studio 2010 中,这工作得很好......在浏览器(此处为 Firefox)中查看时,背景图像显示没有问题,并且所有功能都在那里。
但是,对于 Visual Studio 2012 中的项目,使用相同的代码并在同一浏览器中查看页面进行测试,我得到以下结果:
在浏览器中查看 VS 2012 中的页面不会显示背景图像 - 有一个 空白 而不是背景图像。同样,我正在使用 Firefox,但无论我在 2012 年使用哪一款(IE、Chrome 和内部浏览器),都会发生这种情况。 VS 2010 在所有浏览器中显示背景图像。这就是我应该看到的输出,即背景图像。
同样,这必须是 VS 2012 的问题,因为我在 2010 中没有遇到这个问题。也许,如果我在 VS 2012 中从头开始构建这个而不是尝试移植解决方案,也许我不会有这个问题?希望这有助于更清楚地解释我的问题。
尝试在
Page_Load
上使用此功能来动态更改图像:
Image1.ImageUrl = "~/Images/SampleBackground.png";
在服务器中创建一个文件夹
Images
并向其中添加背景图像。然后就可以用上面的代码来引用了。这不是使用 javascript,而是使用普通的 c#。
希望这有帮助。