用C#字符串替换图像URL

时间:2013-01-08 20:22:31

标签: c# asp.net image

我一直在寻找并且无法弄清楚如何从C#中获取ASPX页面上的标记值。我尝试了很多选择,但没有到达任何地方。

当我的asp页面加载时,使用来自页面url的queryString获取一个值(即mypage.aspx?app = safety) 然后它运行一个开关,找出在页面上使用的图像URL。

事情是,我得到编译错误“当前上下文中不存在名称'img_small'”。您如何看待我的代码?我看不出我错过了什么!

C#:

protected void Page_Load(object sender, EventArgs e)
{
    string img_small;

    String appName = Request.QueryString["app"];

    switch (appName)
    {
        case "safety":
            img_small = "safety-logo.png";
            break;

        case "files":
            img_small = "files-logo.png";
            break;

        case "drawings":
            img_small = "drawings-logo.png";
            break;

        case "specs":
            img_small = "specs-logo.png";
            break;

        default:
            img_small = "idms-logo.png";
            break;
    }
}

HTML:

<img src='"<%=img_small%>"' />

2 个答案:

答案 0 :(得分:5)

img_smallPage_Load之外不存在。

您需要至少使用具有该名称的内部字段,以便能够在课程的任何位置访问它,包括.aspx

public string img_small;

protected void Page_Load(object sender, EventArgs e)
{
   ....

答案 1 :(得分:2)

这是因为img_smallPage_Load函数的局部变量,它不存在于此函数之外。这就是您收到此错误的原因。

我建议你改变

<img src='"<%=img_small%>"' />

<asp:Image ID='imgImage' runat='server' />

然后在Page_Load函数的底部执行

imgImage.ImageUrl = img_small;