2012-09-21 2 views
0

가능한 중복 문자열 변수와 조건이있는 경우에 false로 평가 :
Is there a global variable (across web pages) I can use in C# WebMatrix, that actually works?WebMatrix C# AppState 서비스 (변수?) 항상

내가 오히려 이상한이 문제를 (나에게). 나는 많은 것을 시험하고 시험해 보았고 그 문제를 하나의 간단한 사실로 추적했다.

AppState [ "uniqueName"]을 문자열 값과 비교하려고하면 항상 false로 평가됩니다.

AppState["gAdmitsMembership"] = AdmitsMembership; 

두 번째 페이지 :

if(AppState["gAdmitsMembership"]=="true"){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";} 

당신은 아마 요점은 알 수 있듯이 첫 번째 페이지에서

을 : 당신은 내가 무엇을 볼 수 있도록 여기에 조각 몇입니다 양식을 제출 한 후에 체크 박스를 체크 한 상태로 유지하고 (나중에 편집 가능한 다른 형식으로 데이터를 다시 가져 오는 것)

지금까지 제가 언급 한 것처럼 많은 것들을 테스트했으며 이것은 wh입니다 내가 그랬다.

테스트 할 실제 값이 무엇인지 알아보기 위해 AppState [ "gAdmitsMembership"]의 값을 텍스트 입력 필드 (두 번째 페이지)에 직접 플롯했습니다. 그러나 그것은 여전히 ​​항상 나는 "다른"로 무슨 조작하여 다른 테스트로 측정되는 (false로 동일시, 참으로 "true"를했다.

왜이는 경우 조건을 실패?

것이 중요하다

if(AppState["gAdmitsMembership"]==true){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";} 

(같은 일 만에를 :.. 내가하려고 할 때 때문에 코드에서데도 점에 유의하지하는 것은 부울 값이 값이 "참"그것은 항상 문자열 "참"나는 이런 식으로해야 부울 true)

'== 할 수있는 오류가 발생합니다. 객체 나 부울과 비교하지 말아야한다.

이 때문에 비교 된 문자열 값은 "true"로 유지되어야 데이터베이스에 추가 될 때 필요한 부울 값 true로 데이터베이스로 변환됩니다.

어쨌든, 이것을 통해 나를 잡아 줄 수있는 도움은 신속하게 받아 들여지고 분명히 인정 될 것입니다. 감사!

답변

-1

첫 번째 페이지의 AppState 변수에 값을 할당하는 구문은 올바르지 않습니다. Webmatrix 2: Storing static values을 :이 이전 스레드에 명시된 바와 같이

App.gAdmitsMembership = AdmitsMembership; 

으로 봅니다.

+0

두 구문 중 하나를 사용하여 전역 변수를 설정하고 검색 할 수 있습니다. –

+0

@GmG 바로, 마이크 말이 맞습니다. 문제는 AppState 변수가 객체로 참조되고이를 비교하기 위해 캐스팅이 필요하다는 것입니다. 즉 : (문자열) AppState [ "gAdmitsMembership"].그러나 내가 값을 필요로한다면 (문자열이 아닌) 다른 것들을 필요로한다면 AppState 변수를 새로운 객체 변수에 할당하여 "언 박싱"하는 clunky 프로세스를 거쳐야 할 것입니다. 그것을 사용하여 AppState 변수를 다시 비교합니다. – VoidKing

관련 문제