C# 将AntiForgeryToken添加到非Ajax表单提交

C# 将AntiForgeryToken添加到非Ajax表单提交,c#,forms,post,antiforgerytoken,C#,Forms,Post,Antiforgerytoken,我发现了大量示例,演示了如何将AntiForgeryToken添加到Ajax调用POST-submit方法。正如标题所示,我需要的是提交一个表单,而不是通过ajax调用。相反,我只是使用jQuerysubmit()函数 我在razor视图文件中的内容如下(注意:我使用的是html字符串文字,因为这个特定的DOM需要在以后动态地附加到一个单独的元素): 此外,使用DOM资源管理器,我可以看到AntiForgeryToken值已正确就位: 但是,当我实际提交表单时,仍然会遇到所需的防伪表单字段“\

我发现了大量示例,演示了如何将
AntiForgeryToken
添加到
Ajax
调用POST-submit方法。正如标题所示,我需要的是提交一个表单,而不是通过
ajax
调用。相反,我只是使用jQuery
submit()
函数

我在razor视图文件中的内容如下(注意:我使用的是html字符串文字,因为这个特定的DOM需要在以后动态地附加到一个单独的元素):

此外,使用DOM资源管理器,我可以看到
AntiForgeryToken
值已正确就位:

但是,当我实际提交表单时,仍然会遇到
所需的防伪表单字段“\uu RequestVerificationToken”不存在的错误。我查阅了其他几个问答,但似乎找不到任何可能对我的问题有所帮助的东西

我是错过了一些明显的东西还是做错了什么

编辑(解决方案)

\uuu RequestVerificationToken
分配给
name
属性将修复它:

<input type='hidden' name='__RequestVerificationToken' value='...'>

这一次被证明是“我怎么会错过那个…?!”时刻之一。虽然上述方法完全合法,但唯一的问题是
\uu RequestVerificationToken
必须属于
名称
属性,而不是我最初的示例中的
id
。我试着发布我的表单和修复,问题现在消失了


显然,如果我能使用
表达式,这一点一开始就不会成为问题,但由于我在最初的帖子中所述的原因,这个特殊的案例需要一种非常规的方法。所以,我想这是值得注意的

对于那些需要将表单发送到Razor页面并使用OnPost()获取输入值的人来说,这是一个很好的解决方案,谢谢!
$("#exportPdfForm").submit();
<input type='hidden' name='__RequestVerificationToken' value='...'>