0

У меня есть три контроллера, но Controller1 унаследовано от Controller2 и Controller2 унаследовано от Controller3.ValidateAntiForgeryToken в контроллере переопределения

, например

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() 

, когда нет одного элемента управления и не унаследовал хорошую работу, но при использовании унаследует и метод коррекции ValidateAntiForgeryToken получить ошибку.

validationAntiforgeryToken не является действительным и получить Error:

The required anti-forgery form field "__RequestVerificationToken" is not present.

[HttpAntiForgeryException (0x80004005): The required anti-forgery form field "__RequestVerificationToken" is not present.]

...

спасибо.

ответ

2

Ваша проблема не в вашей иерархии Controller, это потому, что в запросе у вас нет AntiForgeryToken (как говорит ошибка).

Чтобы сделать это, добавьте следующие строки в ваш взгляд (в форме), что сообщения в контроллер:

@Html.AntiForgeryToken() 
+0

нет в свете я добавить @ Html.AntiForgeryToken() – khoshghadam

+0

Вы уверены, что вы добавили его в форма? – Kenneth

+0

да Я уверен, что вы можете тестировать , когда у вас есть один контроллер и нет унаследованного от другого контроллера, работающего хорошо, но в унаследованном состоянии получить ошибку проверки – khoshghadam

Смежные вопросы