繁体   English   中英

如何从CSHTML.CS页面操作DOM?

[英]How do I manipulate the DOM from the CSHTML.CS page?

我试图根据隐藏代码中用户的权限删除某些Web应用程序按钮。

我试图触发javascript onload来删除指定的DOM元素,但是该页面将首先加载,然后在DOM之后将被修改。 我希望在页面加载之前先修改DOM。

您不希望依靠JavaScript来确保安全是正确的,因为任何精通JavaScript的人都可以解决它。

在您的cshtml页面中使用Razor语法甚至不要将其放在首位。 文档在这里 ,但实际上您只是这样做:

@if ([check if user has permission]) {
    <button>Do Something</button>
}

该语句在您的服务器上评估。 因此,如果用户没有权限,该按钮将永远不会放在页面的第一位。

如果您具有按钮所依赖的JavaScript,则也可以通过执行相同的操作将其隐藏:

@if ([check if user has permission]) {
    <script>
        function doSomething() {
            //do something
        }
    </script>
}

一个警告:如果您在一个已经存在的<script>标记内执行此操作,则需要将条件JavaScript放在<text>标记内,以便Razor引擎不会尝试解释JavaScript:

<script>
    @if (true) {
        <text>
        function doSomething() {
            //do something
        }
        </text>
    }
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM