2013-01-08 120 views
1

我一直在尋找和不能找出如何從C#中獲取值到ASPX頁面上的標記。我嘗試了一些選項,但沒有得到任何地方。用C#字符串替換圖像URL

當我的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

這是因爲img_smallPage_Load函數的局部變量,它沒有這個功能之外存在。這就是你得到這個錯誤的原因。

我會建議你改變

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

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

然後在Page_Load功能的底部做

imgImage.ImageUrl = img_small; 
5

img_small沒有的Page_Load之外存在。

您至少需要使用帶有該名稱的內部字段才能在課程中的任何位置訪問該字段,包括.aspx

public string img_small; 

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