如何在CSHTML文件中使用JS文件中定义的bool值?
需求实现方案
可以实现这个需求,分两种场景给出具体方案:
场景1:validation值可在服务器端计算
如果validation的判断逻辑可以移到ASP.NET后端(比如基于用户权限、数据库数据等服务器端数据),直接用Razor语法在渲染时生成对应文本即可,无需依赖客户端JS:
<li> <a href="javascript:void(0)" title="Test" id="EditTest"> @(Model.Validation ? "Freeze Test" : "Edit Test") </a> </li>
注:这里假设后端已将Validation值传入视图模型Model中
场景2:validation值只能在客户端JS中确定
如果validation是基于客户端操作、浏览器环境等只能在前端计算的值,就需要用JavaScript动态修改DOM内容:
步骤1:在test.cshtml中渲染基础结构
<li> <a href="javascript:void(0)" title="Test" id="EditTest">Edit Test</a> </li>
步骤2:在sample.js中根据validation值修改文本
确保代码在DOM加载完成后执行,避免找不到元素:
// 先根据你的特定条件定义validation变量 let validation = false; // DOM加载完成后修改文本 document.addEventListener('DOMContentLoaded', function() { const targetLink = document.getElementById('EditTest'); if (targetLink) { targetLink.textContent = validation ? 'Freeze Test' : 'Edit Test'; } });
如果validation是通过异步请求获取的,调整代码到异步回调中执行:
// 示例:异步获取validation状态 fetch('/api/validation-status') .then(res => res.json()) .then(data => { const validation = data.isValid; const targetLink = document.getElementById('EditTest'); if (targetLink) { targetLink.textContent = validation ? 'Freeze Test' : 'Edit Test'; } });
内容的提问来源于stack exchange,提问作者devPie
相关产品推荐
相关产品推荐

