我一直在寻找并且无法弄清楚如何从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%>"' />
答案 0 :(得分:5)
img_small
在Page_Load
之外不存在。
您需要至少使用具有该名称的内部字段,以便能够在课程的任何位置访问它,包括.aspx
。
public string img_small;
protected void Page_Load(object sender, EventArgs e)
{
....
答案 1 :(得分:2)
这是因为img_small
是Page_Load
函数的局部变量,它不存在于此函数之外。这就是您收到此错误的原因。
我建议你改变
<img src='"<%=img_small%>"' />
到
<asp:Image ID='imgImage' runat='server' />
然后在Page_Load
函数的底部执行
imgImage.ImageUrl = img_small;