在覆盖控制器中验证防伪令牌
本文关键字:令牌 验证 覆盖 控制器 | 更新日期: 2023-09-27 18:32:39
我有三个控制器,但Controller1
继承自Controller2
,Controller2
继承Controller3
。
例如
public class Controller1 : Controller
{
[HttpPost]
[ValidateAntiForgeryToken()]
public virtual ActionResult Create(MyClass test)
{
...
public class Controller2 : Controller1
{
...
public class Controller3 : Controller2
{
[HttpPost]
[ValidateAntiForgeryToken()]
public override ActionResult Create(MyClass test)
...
也在视图中添加
@Html.AntiForgeryToken()
当有一个控件并且没有继承的良好工作时,但是当使用继承和覆盖方法时,验证防伪令牌得到错误。
验证防伪令牌无效并得到错误:
所需的防伪表单字段"__RequestVerificationToken"是 不存在。
[HttpAntiForgeryException (0x80004005):所需的防伪表单 字段"__RequestVerificationToken"不存在。
。
谢谢。
您的问题不在于您的控制器层次结构,而是因为请求中没有 AntiForgeryToken(如错误所述)。
为此,请将以下内容添加到发布到控制器的视图(窗体内):
@Html.AntiForgeryToken()