2017-12-17 22 views
1

フレームワーク4.5.2私はwebforms.Thisドロップダウンを使用し、私はそれがイベントを発火doesntのいずれかのオプションを選択して、私のmasterpage.Ifであり、それはエラーになります:ASP.NET DropDownListの選択EnableEventValidationエラーに

私のマスターページ:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Home.master.cs" Inherits="LandOfSport.UI.apps.mp.Home" %> 

無効なポストバックまたはコールバック引数。ページ設定または<%@ Page EnableEventValidation = "true"%>を使用してイベント検証が有効になっています。この機能はセキュリティ上の理由から、当初はサーバーコントロールからのポストバックイベントまたはコールバックイベントを処理し、それらの独立変数を検証します。データが有効で期待どおりのものであれば、データを保存してポストバックやコールバックClientScriptManagerを検証します。登録前の検証メソッドを使用します。ここで

私のドロップダウンリストである:ここでは

<asp:DropDownList runat="server" AutoPostBack="True" ID="ddlLang" 
           CssClass="ddlLang" OnSelectedIndexChanged="ddlLang_OnSelectedIndexChanged" > 
           <asp:ListItem Text="TR" Value="tr-TR"></asp:ListItem> 
           <asp:ListItem Text="US" Value="en-US"></asp:ListItem> 
          </asp:DropDownList> 

は私のCSSです:

<style> 
    .ddlLang { 
     background-color: black; 
     border-color: black; 
    } 
    .ddlLang option { 
     background-color: white; 
    } 
</style> 

そして、私のイベント:

protected void ddlLang_OnSelectedIndexChanged(object sender, EventArgs e) 
    { 
     Session["CurrentLang"] = ddlLang.SelectedValue; 
    } 

私は変更をたくない何かここでの問題です私のEnableEventValidation。

+1

投稿したコードは正常に機能し、報告している問題は再現されません。 ViewState検証でMacエラーが発生しています。あなたのブラウザでhtmlをチェックしてください。レンダリングされたhtmlページにformタグは1つだけありますか?隠された入力フィールド "__EVENTVALIDATION"が見えますか? – derloopkat

+0

はい2つあります

、1つは別のフォームの中にありますが、1つだけがrunat = "server"です。これは問題ですか? –

+0

提出されたものに非表示の入力がない場合は、それがあります。 – derloopkat

答えて

1

記録のために、私はコメントについて述べた内容を拡張しています。取得しているエラーは、ASP.Netがイベントの検証に失敗したことです。これは、ポストバックアクションがサーバーで許可され、作成されたイベントからのみ発生するようにするセキュリティ機能です。この制限は、あなたのウェブサイトが偽装されたポストバックによってハッキングされるのを防ぐためのものです。

<form method="post" action="./WebForm1.aspx" id="form1"> 
    <!-- Html dropdown and other tags here... --> 
    <input type="hidden" 
     name="__EVENTVALIDATION" 
     id="__EVENTVALIDATION" 
     value="Z8V8I/94JbyXAGZJ9RlOKv56ns..." /> 
</form> 

時々HTMLページが複数 formタグを有する終わることができ、その結果、マスターページを使用して(例えば、両方のマスターおよびWebフォームは、フォームを定義するので、彼らは、HTMLページを結果として生じるでネストされてしまいます)。サブミットされたイベントにイベント検証用の隠しフィールドがなく、この機能が有効になっていると、検証エラーが発生します。

+0

この素晴らしい情報を書く時間をとっていただきありがとうございます。 –

関連する問題