2016-08-13 119 views
0

我有一个注销按钮移到它告诉我这个消息时,我尝试点击此处我的应用程序注销是一个消息,我得到注销按钮不起作用

参数字典包含参数无效项'ID' 非空的类型'System.Int32'方法 'System.Web.Mvc.ActionResult LogOff(Int32)'在 'Web_Site_Portal.Controllers.AccountController'中。可选 参数必须是参考类型,可为空类型,或者声明为可选参数 。参数名:参数

这里是我的代码

<a class="btn btn-primary btn-raised" @Html.ActionLink("Logout", "LogOff", "Account", routeValues: null, htmlAttributes: new { id = "logOff" })<div class="ripple-container"></div></a> 

控制器

​​
+0

就像错误状态一样,LogOff()方法需要一个int参数。你没有提供一个。你需要提供什么参数? – David

回答

4

您的LogOff行动int放慢参数,这似乎是错误的。您不需要此参数,因为您正在注销当前登录的用户。我看到你的LogOff链接有一个id路由参数witch是一个字符串。这是为什么?如果您需要它,您必须将参数类型LogOff操作更改为字符串。

编辑

您必须做同样的事情两个动作。如果您希望您的LogOff操作可以同时使用GET和方法,请从操作中删除[HttpGet][HttpPost]。所有你需要的是:

public ActionResult LogOff() 
{ 
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); 
      return RedirectToAction("Index", "Home"); 
} 
+0

我已经这样做了,现在我收到此消息“所需的防伪表单字段”__RequestVerificationToken“不存在。” –

+0

你的行为之前有'[ValidateAntiForgeryToken]'属性。您还应该在表单中添加@ Html.AntiForgeryToken()。 – Mahmoodvcs