我有一个MVC App,它的常规格式包括@Html.AntiForgeryToken()
,但是我有一个javascript函数,它使用JQuery .append()调用将元素添加到表单中,正在使用此函数在其中包含元素在表单中应作为hiddenfor()元素使用,值应在提交时序列化为相应的Post Controller方法,
,如下所述:
$('#DivHiddenAccountsSub').append("<input id=\"LstAccountsSubDisplay_" + objAccountSub.ID + "__ActId\" name=\"LstAccountsSubDisplay[" + objAccountSub.ID + "].ActId\" type=\"hidden\" value=\"" + objAccountSub.ActId + "\" />");
但是,当我按下“提交”按钮时,出现以下错误: “防伪令牌无法解密。如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET Web页,并且确保配置指定了显式的加密和验证密钥。自动生成不能在群集中使用
注意:上面列出的代码在替换objAccountSub.ID之后应类似于:<input id="LstAccountsSubDisplay_0__ActId" name="LstAccountsSubDisplay[0].ActId" type="hidden" value="01001" />
如何在不破坏AntiForgeryToken()值的情况下将元素追加到表单?
答案 0 :(得分:0)
首先尝试创建元素,然后将其添加为以下内容:
$('#DivHiddenAccountsSub').append($("<input id=\"LstAccountsSubDisplay_" + objAccountSub.ID + "__ActId\" name=\"LstAccountsSubDisplay[" + objAccountSub.ID + "].ActId\" type=\"hidden\" value=\"" + objAccountSub.ActId + "\" />"));