2017-03-14 8 views
0

ChromeブラウザでPDFビューアでPDFを開こうとしていますが、アンパサンドがディレクトリパス、アンパサンドがディレクトリパスに存在する場合、ブラウザのPDFビューアでファイルが見つかりません

  LinkButton lbnFileName = (LinkButton)e.Row.FindControl("lbnFileName"); 
      Label lblFolder = (Label)e.Row.FindControl("lblFolder"); 
      string filePath = "/images/Documents/"; 
      string sFullPath = lblFolder.Text.Replace("\\", "/") + lbnFileName.Text; 
      HyperLink hlDocName = (HyperLink)e.Row.FindControl("hlDocName"); 
      string vPath = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath; 
      string sURL = vPath + filePath + sFullPath.Replace("&", "%26"); 
      hlDocName.NavigateUrl = sURL; 
      hlDocName.Target = "_Blank"; 

答えて

0

アンパサンドはURLの予約文字です。これはパラメータの区切り文字なので、ブラウザはそれをURLの一部の終わりとみなし、別のパラメータとして以降のすべてを無視します。アンパサンドをURLエンコードされた値(%26)に変更し、それが機能するかどうか確認してください。

+0

これで、クライアント(&)から潜在的に危険なRequest.Path値が検出されました。 – Arraylist

+0

このアクションのInputValidationをオフにします。これを参照してください:http://stackoverflow.com/questions/6025522/getting-a-potentially-dangerous-request-path-value-was-detected-from-client –

+0

入力の検証は機能します: Webページではなく、PDFビューアでPDFが開きます。Pag​​eGuideでEnableEventValidation =" false "を設定することはできません。 – Arraylist

関連する問題