我有三个控制器,但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)
...
也在View添加
@Html.AntiForgeryToken()
当有一个控件但没有继承好的工作但是当使用inherit和override方法时,ValidateAntiForgeryToken会出错。
validationAntiforgeryToken无效并收到错误:
所需的防伪表单字段“__RequestVerificationToken”是 不存在。
[HttpAntiForgeryException(0x80004005):所需的防伪表格 字段“__RequestVerificationToken”不存在。]
...
感谢。
答案 0 :(得分:2)
你的问题与你的Controller层次结构无关,这是因为你在请求中没有AntiForgeryToken(如错误所示)。
为此,请将以下内容添加到发布到Controller的视图中(在表单内):
@Html.AntiForgeryToken()