如何将MVC AntiForgeryToken与部分视图一起使用

时间:2014-03-13 13:56:24

标签: c# asp.net-mvc razor antiforgerytoken

在处理部分视图时,我的问题更多地取决于什么是正确的方法。每个局部视图或整个容器都有令牌吗?

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

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

如果我有一个表单/视图,将根据用户响应显示一个或多个部分视图。我需要在哪里放置AntiForgeryToken?在父视图中?在局部视图?既?

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

我是否在正确的轨道上?有人不得不处理类似的事情吗?

1 个答案:

答案 0 :(得分:5)

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

您不需要在每个部分

中放置相同的内容