답변

2

이것은 asp.net 세션과 아무런 관련이 없습니다. 당신이 당신의 페이지

console.log(03375); 

을에 이렇게하면 당신은 1789

가 왜 이런 일이 일어나고받을 수 있습니까?

브라우저의 자바 스크립트 실행이 0 접두어로 시작하는 번호를 볼 때, 그것은 숫자의 진수 표현이라고 생각하기 때문에. 사실 033751789의 8 진수입니다. 그래서 브라우저는 기본적으로 소수점 상당의 에 8 진수 값을 변환하고,

mdn에서 (보통 진수 표현에 수를 분석 브라우저)에게 진수 리터럴로 시작할 수

참고 1789을주고있다 0 (영) 다음에 다른 10 진수가 붙지 만 선행 0 이후의 모든 숫자가 이 8보다 작 으면 숫자는 8 진수로 분석됩니다. 당신이

console.log(09375); 

을 시도하고 그것은, 9375를 인쇄 할 경우

이 의미!

사례를 처리하려면 이상적인 해결책은 올바른 유형 값을 설정하는 것입니다. 예를 들어, 숫자 값을 전달하는 경우 단순히 0으로 시작하는 문자열 버전 대신 숫자 값을 설정하십시오.당신이 절대적으로 세션 값을 설정하면서 0 접두사를 유지하기를 원하지만 경우

Session["something"] = "3375"; 

또는 더 나은 클라이언트 측에서 다음

Session["something"] = 3375; 

,

alert(@Session["something"]); 

원하는 값을 클라이언트 측에서 숫자로 사용하는 경우 문자열로 읽은 다음 parseInt을 사용하여 숫자 유형

로 변환 할 수 있습니다. 10
var r = '@Session["something"].ToString()'; 
alert(r); // the string with leading 0 
var n = parseInt(r); 
alert(n); // the number 
alert(typeof(n)); 
+1

대단히 감사합니다! 오늘 새로운 것을 배우십시오! 다시 한 번 감사드립니다! – NKD