C# 如何在局部视图中使用MVC AntiForgeryToken

C# 如何在局部视图中使用MVC AntiForgeryToken,c#,asp.net-mvc,razor,antiforgerytoken,C#,Asp.net Mvc,Razor,Antiforgerytoken,我的问题更多地取决于在处理部分观点时什么是正确的方法。每个局部视图或容器作为一个整体是否都有标记 目前,我们的表单包含5个局部视图的div。用户正在回答认证问题列表,并根据回答显示1个或多个div/部分视图。接受/拒绝每个局部视图(按钮选择),并提交整个表单(按钮)。目前,每个部分视图在控制器中都有自己的AntiForgeryToken和相应的token验证(按照您指定的方式) 使用这种方法,我们会定期看到System.Web.Mvc.HttpAntiforyException 如果我有一个表单

我的问题更多地取决于在处理部分观点时什么是正确的方法。每个局部视图或容器作为一个整体是否都有标记

目前,我们的表单包含5个局部视图的div。用户正在回答认证问题列表,并根据回答显示1个或多个div/部分视图。接受/拒绝每个局部视图(按钮选择),并提交整个表单(按钮)。目前,每个部分视图在控制器中都有自己的AntiForgeryToken和相应的token验证(按照您指定的方式)

使用这种方法,我们会定期看到System.Web.Mvc.HttpAntiforyException

如果我有一个表单/视图,它将根据用户响应显示一个或多个局部视图。我需要把防伪令牌放在哪里?在父视图中?在局部视图中?两者都有

我的理论是,当表示多个局部视图时,会发生标记不匹配,并报告错误。我的想法是将令牌移动到主/父视图


我走对了吗?有人必须处理类似的事情吗

由于在一个表单中有多个局部视图,因此需要单独在父页面(表单)中添加@Html.AntiForgeryToken()


您不必在每个局部视图中都放置相同的内容

您可能会在这里得到解决方案:或者,一旦处理完所有局部视图,表单就提交了?我认为您不需要在父容器中使用超过一个令牌。