1

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

当我的 asp 页面加载时,使用 queryString 从页面 url 获得一个值(即 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%>"' />
4

2 回答 2

5

img_small之外不存在Page_Load

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

public string img_small;

protected void Page_Load(object sender, EventArgs e)
{
   ....
于 2013-01-08T20:24:34.450 回答
2

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

我建议你改变

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

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

然后在Page_Load函数的底部做

imgImage.ImageUrl = img_small;
于 2013-01-08T20:27:35.333 回答