You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中如何禁用按钮?权限不足时按钮仍显问题求助

解决无权限时按钮仍可见的问题

看起来你的核心问题是权限判断的逻辑覆盖不全,或者权限属性的取值不符合预期。我们一步步来排查和修复:

第一步:验证权限判断的正确性

首先要确认Html.Gebruiker().Autorisatie.SelfserviceHeeftBetermeldenKnop这个属性在用户无权限时是否真的返回false。你可以在页面的某个位置临时添加这段代码来测试:

@Html.Raw("权限状态:" + Html.Gebruiker().Autorisatie.SelfserviceHeeftBetermeldenKnop.ToString())

如果无权限时显示的是true,那说明权限逻辑本身有问题,需要先修复用户权限的赋值逻辑;如果显示的是false,那继续看下面的修复方案。

第二步:完善代码逻辑

你当前的代码只处理了有权限的两种情况(可以提交/暂时不能提交),但完全没处理无权限的场景——如果页面上还有这个按钮,大概率是因为其他地方重复渲染了相同ID的元素,或者你的权限判断块没有完全包裹按钮的渲染逻辑。

修改后的代码应该覆盖所有场景:

@if (Html.Gebruiker().Autorisatie.SelfserviceHeeftBetermeldenKnop) { 
    // 有权限时,根据状态决定按钮是否可用
    if (VerzuimKanBeterMelden) { 
        <a id="aanmaken" class="btn btn-warning k-button-icontext " href="@Url.Action("VerzuimMelding", "Verzuim", new { area = "ESS" })" style="float: right; margin-left: 10px">beter melden</a> 
    } else { 
        // 暂时不能提交时,禁用按钮(用disabled类+指针事件禁用,比hidden更友好)
        <a id="aanmaken" class="btn btn-warning k-button-icontext disabled" href="#" title="Op dit moment kun je je niet beter melden" style="float: right; margin-left: 10px; pointer-events: none; opacity: 0.6">beter melden</a> 
    } 
} else {
    // 无权限时:要么完全不渲染按钮(推荐),要么渲染一个明确禁用的按钮
    // 选项1:完全不渲染(最安全,避免冗余元素)
    // 选项2:渲染禁用且提示无权限的按钮
    <a id="aanmaken" class="btn btn-warning k-button-icontext disabled" href="#" title="Je hebt geen rechten om deze actie uit te voeren" style="float: right; margin-left: 10px; pointer-events: none; opacity: 0.6">beter melden</a>
    // 如果你希望无权限时完全看不到按钮,就用hidden类:
    // <a id="aanmaken" class="btn btn-warning k-button-icontext disabled hidden" href="#" title="Je hebt geen rechten om deze actie uit te voeren" style="float: right; margin-left: 10px">beter melden</a>
}

第三步:检查重复元素

还要检查整个页面是否有其他地方定义了id="aanmaken"的按钮——ID是唯一的,如果有重复,浏览器会优先渲染第一个,可能导致你权限判断的按钮被覆盖,看起来无权限时按钮依然存在。

内容的提问来源于stack exchange,提问作者SavantKing Orange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:44:21