ファンシーボックスにインラインコンテンツとして登録フォームがあり、リンクがマスターページにあるため、すべてのサイトでアクセスできます。
登録フォームには、国用と都市用の2つのドロップダウンリストがあります。ユーザーが国を変更すると、以前に選択した国と同じように都市のドロップダウンリストが更新されます。スクリプトから取得した国や都市のすべてのデータhttps://bdhacker.wordpress.com/tag/all-countries-of-the-world/
問題は、ユーザーがフォームを送信すると、Firefoxのエラーが表示されることです。
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> 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.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> 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.
エラーが指摘しているように、enableeventvalidation=falseを設定する必要があります。問題は、fancyboxがサイト全体にあるため、すべてのページでそれを実行する必要があることです。これは、セキュリティのベストプラクティスではないことを読みました。他のオプションは、例外がスローされるように、すべてのオプションを両方のドロップダウンのclientscriptmanagerに登録することです。これは、200を超える国と10.000の都市があるため面倒です!!!
何かアイデアはありますか?
ここにいくつかのコードがあります
<%@ Master Language="C#" AutoEventWireup="True" CodeBehind="Site.master.cs" Inherits="VozDirecta.SiteMaster" %>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$("#RegistroLightbox").fancybox({
});
});
</script>
<body id="page1">
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<a class="labelsTipolinks" id="RegistroLightbox" href="#LightBoxRegistroDiv">Registro</a>
<div style="display: none">
<div id="LightBoxRegistroDiv">
<asp:DropDownList ValidationGroup="grupoValidacionRegistroUsuario" runat="server"
ID="drpDownPais" CssClass="textoLightbox" AutoPostBack="false" CausesValidation="false">
</asp:DropDownList>
<asp:DropDownList ValidationGroup="grupoValidacionRegistroUsuario" runat="server"
ID="drpDownCiudad" CssClass="textoLightbox" AutoPostBack="false" CausesValidation="false">
</asp:DropDownList>
</div>
</div>
データベースからデータを取得してドロップダウンリストにバインドするという他のオプションを検討しますが、JavaScriptを使用したいです