두 개의 드롭 다운 목록이 있습니다.asp : DropDownList - JavaScript/jQuery를 통해 옵션을 추가 할 때 잘못된 포스트 백 또는 콜백 인수
<asp:DropDownList ID="Field_Type" runat="server" />
<asp:DropDownList ID="Field_SubType" runat="server" />
Field_Type
는 데이터베이스에서 채워지는 형식 목록과 함께 데이터 바인딩됩니다. Field_SubType
가 변경되면 jQuery/AJAX를 통해 Field_SubType
가 설정됩니다. 그런 다음 $("#<%# Field_SubType.ClientID %>").append("<option value=\"1\">Test</option>");
을 사용하여 옵션을 추가합니다. 이것은 예상대로 작동합니다 (새로운 하위 유형이 추가 된 것을 볼 수 있습니다).
그러나 추가 된 옵션을 선택한 후 다시 게시 할 때 오류가 발생합니다.
Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
이 문제의 원인은 무엇이고 어떻게 처리 할 수 있습니까? 내가 가지고있는 몇 가지 아이디어 :
Field_SubType
에 모든 하위 유형을 채우고Field_Type
의 하위 유형이 아니므로 필요한 것보다 많은 데이터가로드되어 페이지로드 시간에 추가됩니다.
<select>
일반
<select>
을 사용하고
Request.Form
를 사용하십시오. 사용자 컨트롤에 여러 번 사용하면 문제가 될 수 있습니다.
기타 옵션은 무엇입니까?
렉스,이 스크립트 삽입에 개방 전체 사이트를 떠나지 않을 것입니다 :
추가 트림이 문제를 해결? 컨트롤을 사용하는 페이지에서이 기능을 활성화하고 페이지의 다른 입력에 대해 추가 유효성 검사를 제공합니다. –
@ 마크 사용자가 마크 업을 제출하는 것을 막기 위해 의존한다고 가정하면 그렇게 할 수 있습니다. 하지만 누가 그것을합니까;) –
@ 짐 XSS를 방지하기 위해 페이지 확인에만 의존하는 경우, 당신은 완전히 다른 문제가 있습니다.최신 버전의 AntiXSS 라이브러리를 사용하여 보안 수준을 높이고 CAT.NET을 실행하여 가능한 취약점을 발견하십시오. –