在我看来有这个
@Html.ActionLink("Lock", "Locked", new { id = item.Id })
我也测试了
@Html.ActionLink("Lock", "Locked", new { id = item.Id }, FormMethod.Post)
这在我的控制器中
[HttpPost, ActionName("Locked")]
public async Task<ActionResult> Locked(string userId)
{
var locked = UserManager.IsLockedOutAsync(userId);
if (false)
{
UserManager.SetLockoutEnabled(userId, true);
}
else
{
UserManager.SetLockoutEnabled(userId, false);
}
return View();
}
如果我悬停链接锁定,我的视图/链接中有一个 ID。但是,如果我在控制器中调试我的应用程序,字符串 userId 为"Null"。
我的目标是将用户 ID 发送到控制器。查找用户是否在数据库中被锁定。如果用户已锁定,请解锁用户。如果用户没有锁定,那么我应该锁定用户。数据库中的锁是真和假,我使用 asp.net 身份和列锁定启用
当您
的 Action 方法需要参数 userId
时,您id
发布参数。因此,这将导致null
,因为操作方法签名上没有匹配的参数。
使用这个:
@Html.ActionLink("Lock", "Locked", new { userId = item.Id })