正如标题所说,这可能吗?我有一个项目,在某些情况下,我需要禁用页面上的按钮。我已经为其设置了一个标志,并在控制器中进行了一些检查,并根据该标志相应地禁用了按钮。如果要禁用该按钮,则它包括“已禁用”,如果不是,则没有任何文本,因为我发现已禁用=“已启用”仍然禁用了该按钮。
我的问题是如何阻止某人通过 F12 开发人员工具更改此设置?我可以加载它,找到元素并删除禁用的属性,嘿,它不再被禁用。我如何/可以阻止这种行为?有没有办法让它更持久?
System.Web.Mvc.dll v5.2.9.0
正如其他人提到的,您无法控制其他用户在做什么。如果您已经在控制器中检查是否应启用该按钮,那么正确的解决方案是同时禁用端点,这样就不会发生任何事情,或者如果他们单击它,它会返回错误页面。
附带说明:您是对的,它只关心“禁用”一词是否存在。通常设置Disabled="disabled"是为了使其与xhtml兼容。引号中的内容根本不重要。他们被忽略了。
我们项目中的真实代码:
if (!order.CanEdit())
return PartialView("_ErrorDialog", "Order cannot be edited.");
else if (!order.CanBeTransferred())
return PartialView("_ErrorDialog", "Invalid status. Cannot transfer this order");
else if (order.IsTransfer)
return PartialView("_ErrorDialog", "Cannot transfer an existing transfer.");
您永远不应该仅仅依赖 html 来阻止功能。