在运行于Mono上的MVC4应用程序中,我遇到了以下错误:
该错误出现在“登录和注册”页面上。该页面具有以下防伪Cookie令牌和表单字段令牌不匹配
LoginOrRegisterViewModel
:public class LoginOrRegisterViewModel
{
public LoginModel Login { get; set; }
public RegisterModel Register { get; set; }
}
这个文本是在GET请求时传递给页面的。
页面上有两个Html.BeginForms()
,一个是登录表单,另一个是注册表单。第一个调用控制器上的Login
操作,第二个调用Register
操作。这两个操作都有一个ValidateAntiForgeryToken
属性。当提交表单时,分别从LoginOrRegisterViewModel
中获取Login
或Register
。
当页面加载时,如果已注册用户在几小时后尝试登录,则最初会显示“登录和注册”页面,但是当提交Login
表单时,上述错误会显示,直到根页面刷新。
我已将Machine Key添加到Web.config,并在两个表单中添加了Html.AntiForgeryToken()
。我怀疑这个错误可能与两个表单和视图模型有关。
有人知道如何修复此错误吗?谢谢。