0

C# から JavaScript に URL を渡す必要があります。問題は、ファイル名に一重引用符が含まれていると、javascript が実行されないことです。HttpUtility.HtmlEncode(fileNameWithoutEx) を使用すると JavaScript が実行されますが、ファイル名が「David の出生証明書のコピー」の場合、URL は ?View.aspx?length=60&ext=pdf&file=Copy of David' に変換されます。出生証明書。

View.aspx がクエリ文字列ファイルを取得しようとしたとき。ファイル名を変更すると、「David の出生証明書のコピー」ではなく「David のコピー」に設定されます。& のため、残りのクエリ文字列は取得されません。

 if (System.IO.File.Exists(fileLocation)) {
            string fileNameWithoutExt = System.IO.Path.GetFileNameWithoutExtension(fileLocation);
            string fileExtension = System.IO.Path.GetExtension(fileLocation).Replace(".", "");
            string title = System.IO.Path.GetFileNameWithoutExtension(fileName);
            string url = "View?length=" + 60+ "&ext=" + fileExtension + "&file=" + fileNameWithoutExt;
            ScriptManager.RegisterStartupScript(this, GetType(), "ShowPDF", "$(document).ready(function(){ShowPDFDocument('" + title + "', '" + url + "');});", true);                                      
}                                       

一重引用符付きのURLをjavascriptに送信するにはどうすればよいですか?

' やその他の特殊文字を処理する最良の方法は何ですか?

4

3 に答える 3

1

を使用しUri.EscapeDataString(yourLinkHere);ます。MSDN の Uri.EscapeDataString を参照してください。

于 2013-08-23T20:25:28.333 に答える
1

JavaScript の引用符で区切られた文字列内にタイトルと URL を埋め込んでいるため、それらをエスケープする必要があります。

title = title.Replace("'","\\'");
url = url.Replace("'","\\'");
于 2013-08-23T20:21:10.190 に答える