<asp:DropDownList ID="Field_Type" runat="server" />
<asp:DropDownList ID="Field_SubType" runat="server" />
Field_Type
est-databound, une liste de types, peuplée d'une base de données. Field_SubType
est défini via jQuery/AJAX lorsque Field_Type
est modifié. J'ajoute ensuite une option en utilisant $("#<%# Field_SubType.ClientID %>").append("<option value=\"1\">Test</option>");
. Cela fonctionne comme prévu (je vois le nouveau sous-type ajouté).
Cependant, lors de la publication de retour après avoir sélectionné l'option qui a été ajoutée je reçois une erreur:
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.
Quelle pourrait être la cause de cela, et comment pourrais-je travailler autour d'elle? Quelques idées que je:
- Utilisez un
<select>
simple et utiliserRequest.Form
- pourrait être un problème si elle est dans un contrôle utilisateur utilisé plusieurs fois sur une page - Populate
Field_SubType
avec tous les sous-types, filtrer les qui ne sont pas un sous-type deField_Type
- cela va charger plus de données que nécessaire, ce qui va ajouter au temps de chargement de la page
D'autres options?
Rex, ne serait-ce laisser ouvert à l'injection de script tout le site? Je voudrais juste l'activer sur les pages où le contrôle est utilisé et fournir une validation supplémentaire pour toutes les autres entrées sur la page. –
@Jim en supposant que vous comptez sur cela pour empêcher les utilisateurs de soumettre le balisage, il pourrait. Mais qui fait cela?) –
@Jim Si vous ne comptez que sur la validation de la page pour empêcher XSS, vous avez un autre problème entièrement.Utilisez la dernière version de la bibliothèque AntiXSS pour atteindre un meilleur niveau de sécurité et exécuter CAT.NET pour découvrir les vulnérabilités possibles. –