バックグラウンド:
私は、ヘッダーがUserControlであり、タグ、リンク、ボタン、およびその上のすべてがoutput.Writeで追加される非常に古いプロジェクトに取り組んでいます。それは本当に大きなファイルであり、そのまま動作し続ける必要があります。
特徴:
ユーザーがリンクをクリックしてより安全な側に移動したときにパスワードを要求するdivを作成しています。ajaxリクエストを実行し、パスワードが有効な場合はトークンを返します。このトークンを非表示フィールドに設定し、ボタンをクリックして、そのトークンを他のページに送信します。
問題:
出力を使用して生成しています。フォーム、入力、ボタンを記述し、送信しようとすると、無効なポストバックまたはコールバック引数を取得します。
これは私がそれを生成する方法です:
mystringbuilder.Append("<div id='blackout' style='display: none'>")
mystringbuilder.Append("</div>")
mystringbuilder.Append("<div id='adminPassword' style='display: none;' class='popupcont'>")
mystringbuilder.Append(" <a href='#' onclick=""return closeDiv('adminPassword','',0);"" class=""pclose""></a>")
mystringbuilder.Append(" <br />")
mystringbuilder.Append("Password: <input type='password' name='txtPassword' id='txtPassword'/><br>")
mystringbuilder.Append("<button type='button' id='btnLogin'> Login </button>")
mystringbuilder.Append(String.Format(" <input style='display:none' type='text' name='hidUsername' id='hidUsername' value='{0}'/>", User.UserName))
mystringbuilder.Append(" <FORM action='/tokenLogin.aspx' method='post'>")
mystringbuilder.Append(" <input style='display:none' type='text' name='hidAuthToken' id='hidAuthToken'/>")
mystringbuilder.Append("<button type='submit' style='display:none' id='btnTransfer'> Transfer </button>")
mystringbuilder.Append("</FORM>")
mystringbuilder.Append("</div>")
これを追加しようとしましたが、それでも同じ結果が得られます。
Page.ClientScript.RegisterForEventValidation("hidAuthToken")
Page.ClientScript.RegisterForEventValidation("btnTransfer")
私が試すことができる回避策はありますか?これはヘッダーにあり、すべてのページで無効にするため、検証を無効にすることはできません。