데이터 바인딩과 관련이없는 페이지에서 원래 프로그래머가 <%# ... %>
을 사용하는 일부 코드가 나타납니다. 문자열을 페이지에 출력하는 데 사용됩니다. 이거 안전한가요? <%#
은이 경우 <%=
또는 <%:
처럼 동작합니까?데이터 바인딩 방식이 아닌 <% #을 사용하는 것이 안전합니다.
0
A
답변
1
는 <퍼센트 =이 경우 또는 <% 같은 <% 번호 동작합니다합니까?
태그 안의 코드가 Response.Write() 또는 이와 유사한 함수를 명시 적으로 호출하는 경우에만.
1
< % # ... %> 사이의 표현식이 평가되고 문자열로 변환됩니다. 결과는 컨트롤의 속성에 할당되고 컨트롤이 없으면 DataBoundLiteralControl이 추가됩니다. 안전 해요? 예. 처음에 페이지에 액세스하면 ASP .Net은이를 구문 분석하고 새 클래스를 생성하며이 블록의 코드를 포함하여 어셈블리로 컴파일합니다.
, 그것은되는 상기 HtmlTextWriter.Write 법에 의해 사용되며, 게다가, <% = ... %> 사이 이전과 동일하게 작용하지만, 그 결과는 어떤 속성에 할당되지 btw는 void를 반환하므로 데이터 바인딩 식에서 사용하려고하면 작동하지 않습니다.
무엇에 대해 :
이것은, 양쪽 구조에서 사용할 수는 : 평가 된 문자열 System.Web.HttpUtility.HtmlEncode를 통해 인코딩 된 HTML이기 때문에, 안전 플러스. 데이터 바인딩을 사용하여 < % # 또는 작성자 구조 < % :(= 제외)와 함께 사용할 수 있습니다. , 컴파일 오류를 줄보기 전체 컴파일 소스를 클릭하고, 그 라인으로 이동합니다 구조에서
팁
쓰기 뭔가. 블랙 박스는 더 이상 블랙 박스가 아닙니다.
관련 문제
- 1. 레일 : before_filter의이 스타일을 사용하는 것이 안전합니다.
- 2. URI 방식이 아닌 "파일"
- 3. 데이터 바인딩 ObservableCollection <XElement>을 ListBox에 바인딩 하시겠습니까?
- 4. 데이터 바인딩 대신 DataTrigger를 사용하는 것이 더 좋습니까?
- 5. 사전 내에 컨텍스트를 유지하는 것이 안전합니다.
- 6. OS간에 로컬 git 저장소를 공유하는 것이 안전합니다. '
- 7. 포트 환경을 1024에서 65535로 설정하는 것이 안전합니다.
- 8. .WAR 파일에서 jsp를 편집하는 것이 안전합니다.
- 9. 데이터베이스 캐시 테이블을 기밀로 유지하는 것이 안전합니다
- 10. mutiplatform을 빌드하기 위해 데이터 및 시스템 범위 단위 만 사용하는 것이 안전합니다
- 11. 데이터 바인딩 용도로만 중간 유형을 사용하는 것이 일반적인 방법입니까? (WPF)
- 12. 로드 데이터 방식이 잘못 되었나요?
- 13. 명명 질문 - 프로그래밍 방식이 아닌 질문
- 14. WPF 데이터 바인딩 <>
- 15. BeginInvoke 호출에서 lock()을 사용하는 것이 안전합니까?
- 16. Html.RenderAction()을 사용하는 것이 적절한 경우?
- 17. Rails가 아닌 보석에서 ActiveSupport를 사용하는 것이 좋습니다.
- 18. 클래스가 아닌 구조체를 사용하는 것이 좋습니다.
- 19. Winforms 데이터 바인딩
- 20. Double.TryParse 또는 Convert.ToDouble - 빠르고 안전합니다.
- 21. dirname (__ FILE__)을 사용하는 것이 보안 위험입니까?
- 22. str()을 사용하는 것이 __str보다 낫다()
- 23. 언제 Thread.Sleep()을 사용하는 것이 현명합니까?
- 24. pg_pconnect (php-fpm)을 사용하는 것이 맞습니까
- 25. 음모에 "공유"/ "동적"을 사용하는 것이 실용적인가요?
- 26. 언제 .toString()을 사용하는 것이 안전합니까?
- 27. 바인딩 목록 <string>을 ComboBox
- 28. 여러 소스를 사용하는 Combobox 데이터 바인딩
- 29. Subversion, MergeInfo를 재 통합 병합에서 제거하는 것이 안전합니다
- 30. 큰 데이터베이스 (테이블 구조)에서 필드를 변경하는 것이 안전합니다
Page.DataBind가 호출되지 않았습니까? –
오른쪽. DataBind가 호출되지 않으면 아무 것도 출력되지 않습니다. –
중첩 된 마스터 페이지를 사용할 때 콘텐츠 위치 홀더에 동적 링크 URL을 배치 할 때 설명하는 것과 유사한 기술을 사용했습니다. ASP.NET은 동적 코드 ('<% =')를 중첩 된 작업 공간 홀더가있는 작업 공간 홀더에 넣으면 불평합니다. 그것을 <% # Page.ResolveUrl ... '로 바꾸면 Page.DataBind를 코드에서 호출하여 두 시나리오를 모두 지원할 수 있습니다. 훌륭한 해결책은 아니지만 작동합니다. –