2013-01-16 56 views
0

使用this question,我正在讀取圖像文件夾,然後在網頁上顯示這些圖像。用url中的特殊字符顯示圖像

目前,它的所有作品,除了具有特殊字符的圖像。

'&'符號的名稱顯示一個損壞的圖像鏈接。有沒有什麼方法可以顯示圖像而不必更改圖像名稱?

我已經試過

var images = 
      from image in Directory.EnumerateFiles(Server.MapPath("~/_resources/game_icon"), "*.*", SearchOption.AllDirectories) 
      let filename = Path.GetFileNameWithoutExtension(image) 
      let relativeLocation = Path.GetFullPath(image).Replace(Server.MapPath("~"), string.Empty).Replace("\\", "/")//.Replace(Path.GetFileName(image), HttpUtility.UrlEncode(Path.GetFileName(image))) 
      let splitted= string.Join("/", relativeLocation.Split('/').ToList().Select(p => Server.UrlEncode(p))) 
      let url = ResolveUrl("~/" + splitted) 
      where image.ToLower().Contains(txtGameName.Text.ToLower()) 
      select new 
      { 
       Filename = filename, 
       Url = url 
      }; 

但所有圖片打破。

回答

0

我發現這只是一個A potentially dangerous Request.Path value was detected from the client錯誤。

使用

<system.web> 
    <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,:,\,?" /> 
</system.web> 

修復所有問題。

0

在圖像名稱上使用HttpServerUtility.HtmlEncode。請參閱http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx

+0

我不能在靜態上下文中訪問它。這發生在點擊按鈕上。使用'Server.HtmlEncode'也不起作用。 – TheGeekZn

+0

使用'HttpUtility.HtmlEncode',它是一個靜態方法。 –

+0

圖像仍然斷裂。圖片網址現在是'' – TheGeekZn