C# mvc 6只生成一次antiforgerytoken
我正在与visual studio 2015和aspnetcore rc2合作。我使用C# mvc 6只生成一次antiforgerytoken,c#,asp.net,asp.net-core-mvc,asp.net-core-1.0,C#,Asp.net,Asp.net Core Mvc,Asp.net Core 1.0,我正在与visual studio 2015和aspnetcore rc2合作。我使用@html.antiforgerytoken()在每个表单中发布。但是MVC6创建了第一个,删除(或者忽略)了其他的。我用masterview试过了,但没有master,没有结果。我在想我在什么地方犯了个错误,但在哪里呢?我已清除浏览器历史记录,并创建了一个简单的空asp.net项目,其中包含一个视图和一个控制器,然后重试,但没有结果 以下是屏幕截图。 输出我不使用@addtaghelper或任何其他类似的扩展
@html.antiforgerytoken()
在每个表单中发布。但是MVC6创建了第一个,删除(或者忽略)了其他的。我用masterview试过了,但没有master,没有结果。我在想我在什么地方犯了个错误,但在哪里呢?我已清除浏览器历史记录,并创建了一个简单的空asp.net项目,其中包含一个视图和一个控制器,然后重试,但没有结果
以下是屏幕截图。
输出我不使用
@addtaghelper
或任何其他类似的扩展名,我只使用@html.antiforgerytoken
Github repo aspnet/MVC有一系列关于多个antiforgerytoken
调用的问题:。目前的行为似乎是前一个bug的“影响”。打开
目前(从1.0.0 RTM开始),我们有解决办法:将生成的令牌保存到变量,并多次写入此变量:
@{
var token = Html.AntiForgeryToken();
}
<form id="form-one">
@token
</form>
<form id="form-two">
@token
</form>
@{
var token=Html.AntiForgeryToken();
}
@代币
@代币
更新:问题已确认为bug,计划于。正如我在中提到的,只有在HTML和标记帮助程序未用于生成
元素时才会发生这种情况
除了切换到HTML生成(即使用更多侵入性助手),最简单的解决方法是在\u ViewImports.cshtml
中添加以下内容:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
或
我现在使用这种风格,这是一种特殊的解决方案而不是答案:@{if(viewdata[“token”]==null){html.antiforgerytoken();}}}和@viewdata[“token”]在表单中。感谢您的回复。正如我在问题中提到的,我不(想)使用@addtaghelper或任何其他类似的扩展。这是一种临时解决方法。我们计划在下一版本中修复。
@addTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers