如何在mvc中的ajax操作链接中包含AntiForgeryToken?

如何在mvc中的ajax操作链接中包含AntiForgeryToken?,ajax,asp.net-mvc,security,razor,csrf,Ajax,Asp.net Mvc,Security,Razor,Csrf,我有以下代码: @Ajax.ActionLink("Delete", "Delete", new { id = item.ID, RequestVerificationToken=*What comes here?*}, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "formsIndex" }) 我想在客户端不使用javascript的情况下将验证令牌添加到链接中,这似乎是一种冗余依赖,因为我已经在服务器中拥有该值。有合适

我有以下代码:

@Ajax.ActionLink("Delete", "Delete", 
new { id = item.ID, RequestVerificationToken=*What comes here?*}, 
new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "formsIndex" })
我想在客户端不使用javascript的情况下将验证令牌添加到链接中,这似乎是一种冗余依赖,因为我已经在服务器中拥有该值。有合适的方法吗?

来自(我的重点)

HtmlHelper.AntiForgeryToken方法

生成一个隐藏表单字段(防伪令牌),在提交表单时验证该字段

您需要一个表单元素来生成防伪令牌

@Ajax.BeginForm("Delete", new { id = item.ID }, new AjaxOptions { UpdateTargetId = "formsIndex" }))
{
  @Html.AntiForgeryToken()
  <input type="submit" value="Delete" /> // style to look like a link if that's what you want
}
@Ajax.BeginForm(“删除”,新的{id=item.id},新的AjaxOptions{UpdateTargetId=“formsIndex”}))
{
@Html.AntiForgeryToken()
//如果您需要,请将样式设置为链接
}

创建一个表单(
Ajax.BeginForm()
)并包含
@Html.AntiForgeryToken()
谢谢。虽然我希望有一个更漂亮的解决方案,但它还是像预期的那样工作。在创建AntiForgeryToken hiddin字段时,视图引擎访问令牌值,似乎应该有一种方法可以访问它,而无需将输入元素缠绕在它周围。实际上,我已经解析了输入元素并提取了令牌,但却意识到无法发布消息,这意味着使用action链接传递数据的唯一方法是使用url参数,而不管其get还是post,url参数不适用于AntiForgeryToken。这意味着没有比这更好的选择了。