쿼리 문자열 변수 중 하나 인 UNC 경로가 포함 된 URL을 생성하려고합니다. 사용자가 ASP.NET 버튼 컨트롤을 클릭하면 URL이 팝업 창에 열립니다. 단추를 클릭하면 뒤로 슬래시가 UNC 경로에서 제거되어 페이지가 끊어집니다.역 슬래시가 쿼리 문자열에서 제거되는 이유 - ASP.NET 및 Javascript
버튼은 모든 백 슬래시가있는 페이지 소스 파일에서 올바르게 렌더링됩니다.
이것을 방지 할 수있는 방법이 있습니까?
코드 뒤에 :
<script language="javascript" type="text\javascript">
function FullPop(Newurl) {
Win = window.open(Newurl,"Monitor", "fullscreen=0,toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=800,height=600,top=50,left=50");
Win.focus();
}
</script>
<asp:button id="MyButton" runat="server" cssclass="mycss" text="View Actual Target" />
업데이트
Server.URLEncode가 작동하지 않는
string unc = @"\\myserver\myfolder\myfile.txt";
string url = string.Format("http://www.mysite.com/page.aspx?a={0}", unc);
MyButton.Attributes.Add("onclick", @"javascript:FullPop('" + url + @"')");
ASPX 페이지
여기 내 소스 코드입니다. 같은 행동. 다니엘 루의 답변에 따라
업데이트 1
, 나는 다음과 같은 솔루션 개발 :
protected void Page_Load(object sender, EventArgs e)
{
string unc = @"\\myserver\myfolder\myfile.txt";
string url = string.Format("http://www.mysite.com/page.aspx?a={0}", unc);
MyButton.Attributes.Add("onclick", @"javascript:FullPop('" + this.EscapeforJavaScript(url) + @"')");
}
private string EscapeforJavaScript(string url)
{
return url.Replace(@"\", @"\\");
}
그리고 urlDecode;) –
대답에 따라 업데이트 된 질문 –
@Deviant : 값은 이미 쿼리 문자열에서 읽을 때 디코드되므로 값을 읽을 때 추가 디코딩이 필요하지 않습니다. – Guffa