javascript - 为什么@ID变量在同一内部以不同的方式呈现 元素
问题描述
我正在尝试自动生成一些 javascript,我的数据模型中的每一行都有一行,这需要将每行上的 ID 值插入到 javascript 中。
这是 HTML 页面上 script 元素内的代码:
<script>
$(function () {
@foreach (var item in Model) {
var ID = item.QuestionID;
<text>$('#toggle-off@ID-label').click(function() { $('#Question-Answer-@ID').show(); })</text>
}
});
</script>
输出是:
<script>
$(function () {
$('#toggle-off@ID-label').click(function() { $('#Question-Answer-1').show(); })
$('#toggle-off@ID-label').click(function() { $('#Question-Answer-2').show(); })
$('#toggle-off@ID-label').click(function() { $('#Question-Answer-3').show(); })
...
当我期望它是:
<script>
$(function () {
$('#toggle-off1-label').click(function() { $('#Question-Answer-1').show(); })
$('#toggle-off2-label').click(function() { $('#Question-Answer-2').show(); })
$('#toggle-off3-label').click(function() { $('#Question-Answer-3').show(); })
...
解决方案
Razor 标记解析器不是那么聪明,它被认为off@ID
是单个标记,因此不应该替换它。
您应该可以通过以下方式解决它:
<script>
$(function () {
@foreach (var item in Model) {
var ID = item.QuestionID;
var toggle = string.format("#toggle-off{0}-label", ID);
<text>$('@toggle').click(function() { $('#Question-Answer-@ID').show(); })</text>
}
});
</script>
推荐阅读
- html - 使用 redux 跟踪最近查看的产品,可以吗?
- excel - VBA 中的 Excel 错误“运行时错误‘424’:SET 语句需要对象
- oracle - 测试容器甲骨文
- caching - 任何能够缓存 WebSocket 数据的 CDN
- c++ - 我可以用 typedef 转发声明在别处定义的类型吗
- javascript - 谷歌电子表格 API。无法指定系列的axisPosition
- powershell - 寻找一个在目录中获取最新 txt 文件并搜索关键字“RequriedString”的 powershell 脚本
- r - (R)如何为 grid.newpage() 添加 importFrom?
- laravel - 如何在 Laravel 中将 sql 转换为 QueryBuilder
- r - R - 以每年的生存为条件计算年人口