2013-08-27 51 views
0

我在使用ambersand打開文件時遇到問題。在asp.net中打開名稱爲ambersand的文件時出錯

var attachment = "attachment;" + "&test& incident&.txt"; 

HtmlPage.Window.CreateInstance("foo2", new object[] { Id.ToString(), attachment }); 


function foo2(theAlert, type) { 
      alert(type); 
      window.open('fileViewer.aspx?Id=' + theAlert + '&Type=' + type); 

     } 

當我嘗試在另一個頁面中獲取類型時,我只獲取「附件」;因爲它會在&符號之前採取措詞。並缺少我的文件名。如果我給文件名沒有&符號,我沒有任何問題在打開文件。

任何人都可以幫我嗎?

在此先感謝。

+0

正是由於符號就像是在URL中的條款保留字符。 – BossRoss

+0

雅,但對於我的情況,我不得不使用。你能幫我解決這個問題嗎? – user1845163

+0

嘗試與'附件=附件HttpContext.Current.Server.UrlEncode(附件)' – Damith

回答

1

可以使用encodeURIComponent

譯:encodeURIComponent()函數編碼URI組件。

該函數對特殊字符進行編碼。此外,它還編碼以下字符:

字符:,/? :@ & = + $#

window.open('fileViewer.aspx?Id=' + theAlert + '&Type=' + encodeURIComponent(type)); 
+0

它的工作正常。非常感謝 – user1845163

0

嘗試以下操作:

window.open("fileViewer.aspx?Id=" + theAlert + "&Type=" + encodeURIComponent(type)); 

從是encodeURI改爲encodeURIComponent方法:

  • 是encodeURI是用於在完整的URI使用。
  • encodeURIComponent旨在用於.. well .. URI組件,它是位於分隔符(; /?:@ & = + $,#)之間的任何部分。
+0

非常感謝,我試過用uri它沒有工作。與urimcomponent它的工作fine.thanks您的時間分享這個信息 – user1845163