我尝试在我的cshtml页面中有一个条件标记
<script type="text/javascript">
var isTrendClicked = false;
function trendChart() {
$('.sparkline1').sparkline()
}
if ($("#chart-trend").click(function () {
trendChart();
isTrendClicked = true;
}));
</script>
<div>
@if (isTrendClicked)
{
<span class="inlinesparkline"></span>
<span class="dynamicbar" ></span>
}
else {
<span class="sparkline1"></span>
}
</div>
我收到错误: 错误CS0103:当前上下文中不存在名称“isTrendClicked”
我该如何解决这个问题?
谢谢:)
答案 0 :(得分:1)
我想你想这样做。你正在用C#捣乱Javascript varibles。
Razor中的C#代码在服务器上执行,html呈现回来。它不知道在浏览器中运行时在javascript中设置的isTrendClicked
是什么。到那时c#已经死了,直到你打电话给服务器。
<script type="text/javascript">
$(function(){
var isTrendClicked = false;
$('.inlinesparkline , .dynamicbar').hide();
function trendChart() {
$('.sparkline1').sparkline()
}
$("#chart-trend").click(function () {
trendChart();
$('.sparkline1').hide();
$('.inlinesparkline , .dynamicbar').show();
});
});
</script>
<div>
<span class="inlinesparkline"></span>
<span class="dynamicbar" ></span>
<span class="sparkline1"></span>
</div>
答案 1 :(得分:1)
你正在混淆Razor和JavaScript。您的变量是JavaScript变量,但您正尝试通过Razor访问它。你还有一个click
语句包含在一个狡猾的if
语句中。
我认为这是你想要实现的目标:
<script type="text/javascript">
var isTrendClicked = false;
$(function () {
$(".inlinesparkline, .dynamicbar").hide();
});
function trendChart() {
$('.sparkline1').sparkline()
}
$("#chart-trend").click(function () {
trendChart();
isTrendClicked = true;
$(".inlinesparkline, .dynamicbar").show();
$('.sparkline1').hide();
});
</script>
<div>
<span class="inlinesparkline"></span>
<span class="dynamicbar" ></span>
<span class="sparkline1"></span>
</div>