在同一页面中,我有2个表格。一个是简单的新闻订阅,另一个是Braintree“Drop-in”付款表单。
当我提交Braintree表单时,表单提交后,我会在重新加载页面时收到The required anti-forgery form field "__RequestVerificationToken" is not present
例外,相对于简报表单。
这真的很奇怪,考虑到简报形式完美无缺,我认为没有理由提交一个表单应该在另一个表单中生成这样的异常,特别是在重新加载页面而不是POST时。
这是新闻稿表格的代码,包含在PartialView中:
@using (Ajax.BeginForm("SubscribeForm", "Components"))
{
@Html.AntiForgeryToken()
// other inputs omitted for brevity
}
我使用@Html.Action("SubscribeForm", "Components")
在页脚中渲染它。这是ComponentsController,带有GET和POST操作:
public ActionResult SubscribeForm()
{
// do stuff
return PartialView("_SubscribeForm", viewModel);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SubscribeForm(SubscribeViewModel model)
{
// do stuff
}
这是例外:
知道什么可能触发这种行为吗?
答案 0 :(得分:-3)
您必须发布包含验证令牌的表单。为此,请考虑使用提交按钮/输入标记。
@using (Ajax.BeginForm("SubscribeForm", "Components")) {
@Html.AntiForgeryToken()
<input type="submit" value="Log in" class="btn btn-default" /> }