用户注册中出现了所需的防伪表单字段“__RequestVerificationToken”不存在的错误。

163
我正在使用Membership.create用户函数,但出现以下错误,

所需的防伪造表单字段“__RequestVerificationToken”不存在

我该如何解决?
22个回答

0
有时候你会写一个带有结果列表的表单操作方法。在这种情况下,你不能只用一个操作方法。所以你必须要有两个同名的操作方法。一个带有 [HttpGet] 属性,另一个带有 [HttpPost] 属性。
在你的 [HttpPost] 操作方法中,设置 [ValidateAntiForgeryToken] 属性,并在你的 HTML 表单中加入 @Html.AntiForgeryToken()

-1
如果您想在方法上使用[ValidateAntiForgeryToken],只需将@Html.AntiForgeryToken()添加到使用该方法的表单中即可。
如果您具有与视图名称相同的方法(其中包含@Html.AntiForgeryToken()表单),则控制器中应该有两个重载方法。
类似于这样:
第一个->用于视图的ActionResult
[AllowAnonymous]
public ActionResult PasswordChange()
{
   PasswordChangeViewModel passwordChangeViewModel = new PasswordChangeViewModel();
   return View(passwordChangeViewModel);
}

第二个 -> 用于 HttpPost 方法

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult PasswordChange(PasswordChangeViewModel passwordChangeViewModel)
{
   //some code
} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接