背景:
我正在处理一个非常古老的项目,其中标题是 UserControl,标签、链接、按钮和上面的所有内容都添加了 output.Write。它是一个非常大的文件,需要保持原样工作。
特征:
我正在创建一个 div,当用户单击链接以转到更安全的一侧时,它会要求输入密码,我执行 ajax 请求,如果密码有效,它会返回一个令牌,我将此令牌设置为隐藏字段和单击按钮将该令牌提交到其他页面。
问题:
我正在生成输出。编写表单、输入和按钮,当我尝试提交时,我得到 Invalid postback 或 callback 参数。
这就是我生成它的方式:
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")
我可以尝试任何解决方法吗?我无法禁用验证,因为它在标题中,我将为所有页面禁用它。