【发布时间】:2018-01-04 15:48:36
【问题描述】:
标题是不言自明的。辅助 Razor 标记基本上是按照应有的方式生成令牌 cookie,但不是正确的隐藏标记。 已经检查过语法,表单没有使用 AJAX,而且 cookie 显然是正确的,所以...
我宁愿冒险将这个问题标记为重复问题,也不愿花费数周时间在大海捞针上解决问题。
查看:
@model model
@{
ViewBag.Title = "Title";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
//content
}
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ControllerName([Bind(Include = "fields")] Class objectClass)
{
//content
}
标签:
<input name="__RequestVerificationToken" type="hidden" value="">
饼干:
name,value,domain,path,expires,httpOnly,secure
__RequestVerificationToken,5iRF4KpqPUPqnqRnlt74YrS99mOXW7Y-WcjKFOz3GmH3DmtuQPEHHAjm8vqZg9Z7P7F3rymZ2zojemQwJp0meq2etANdI5rm9n0RT7jjqCE1,localhost,/,Sessão,true,false
更新 1:
原来它是因为 jQuery 而发生的。我怀疑这是由于与安装的版本不兼容,3.1.1,当前最新的稳定版本。它在强制删除元素属性的第 7958-7961 行周围具有以下条件:
// If set returns undefined, fall back to normal setting
if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
this.value = val;
}
但最后我发现这种情况从 v1 开始就一直存在,所以即使调试了客户端代码,为什么它只发生在这个项目中仍然是个谜。无论如何,感谢您的反馈。
【问题讨论】:
-
"不是正确的隐藏标签" .. 你的意思是标签与 cookie 不匹配,还是根本没有生成标签?
-
页面加载时是否有任何客户端脚本在此页面上运行?正确是指生成 HTML 时标签显示的名称正确吗?
-
是的,标签生成正确,但“value”参数为空。
标签: c# cookies asp.net-mvc-5 antiforgerytoken