Javascript 为什么@ID变量在同一个<;文本></文本>;要素
我试图自动生成一些javascript,即数据模型中每一行的一行,这需要将每一行上的ID值插入到javascript中 这是HTML页面上脚本元素内的代码:Javascript 为什么@ID变量在同一个<;文本></文本>;要素,javascript,c#,asp.net-mvc-4,razor,Javascript,C#,Asp.net Mvc 4,Razor,我试图自动生成一些javascript,即数据模型中每一行的一行,这需要将每一行上的ID值插入到javascript中 这是HTML页面上脚本元素内的代码: <script> $(function () { @foreach (var item in Model) { var ID = item.QuestionID; <text>$('#toggle-off@ID-label').click(function() { $('#Qu
<script>
$(function () {
@foreach (var item in Model) {
var ID = item.QuestionID;
<text>$('#toggle-off@ID-label').click(function() { $('#Question-Answer-@ID').show(); })</text>
}
});
</script>
$(函数(){
@foreach(模型中的var项目){
变量ID=item.QuestionID;
$('#切换-off@ID-标签)。单击(函数(){$('#问题答案-@ID')。显示();})
}
});
输出为:
<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(); })
...
$(函数(){
$('#切换-off@ID-标签)。单击(函数(){$('#问答-1')。显示();})
$('#切换-off@ID-标签)。单击(函数(){$('#问答-2')。显示();})
$('#切换-off@ID-标签)。单击(函数(){$('#问答-3')。显示();})
...
我本以为会是:
<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(); })
...
$(函数(){
$('toggle-off1-label')。单击(函数(){$('toggle-Answer-1')。显示()
$('toggle-off2-label')。单击(函数(){$('toggle-Answer-2')。显示()
$('toggle-off3-label')。单击(函数(){$('toggle-Answer-3')。显示()
...
如果前面有字母数字字符,razor引擎似乎会将@ID
视为字符串的一部分。如果在它正常工作之前添加连字符:#关闭-@ID标签
。可以用括号括住ID
,以获得预期的输出:
<script>
$(function () {
@foreach (var item in Model) {
var ID = item.QuestionID;
<text>$('#toggle-off@(ID)-label').click(function() { $('#Question-Answer-@ID').show(); })</text>
}
});
</script>
$(函数(){
@foreach(模型中的var项目){
变量ID=item.QuestionID;
$('#关闭@(ID)-label')。单击(函数(){$('#问题答案-@ID')。显示();})
}
});
如果前面有字母数字字符,razor引擎似乎会将@ID
视为字符串的一部分。如果在它正常工作之前添加连字符:#关闭-@ID标签
。可以用括号括住ID
,以获得预期的输出:
<script>
$(function () {
@foreach (var item in Model) {
var ID = item.QuestionID;
<text>$('#toggle-off@(ID)-label').click(function() { $('#Question-Answer-@ID').show(); })</text>
}
});
</script>
$(函数(){
@foreach(模型中的var项目){
变量ID=item.QuestionID;
$('#关闭@(ID)-label')。单击(函数(){$('#问题答案-@ID')。显示();})
}
});
Razor标记解析器没有那么聪明,它考虑了off@ID
是一个单一的令牌,因此不应该被它取代
你应该可以用这样的方法来解决这个问题:
$(函数(){
@foreach(模型中的var项目){
变量ID=item.QuestionID;
var toggle=string.format(“#toggle off{0}-label”,ID);
$('@toggle')。单击(函数(){$('#问题答案-@ID')。显示();})
}
});
Razor标记解析器没有那么聪明,它考虑了off@ID
是一个单一的令牌,因此不应该被它取代
你应该可以用这样的方法来解决这个问题:
$(函数(){
@foreach(模型中的var项目){
变量ID=item.QuestionID;
var toggle=string.format(“#toggle off{0}-label”,ID);
$('@toggle')。单击(函数(){$('#问题答案-@ID')。显示();})
}
});
为什么需要生成单独的单击处理程序?为什么需要生成单独的单击处理程序?