0

我尝试在我的 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”

我怎样才能解决这个问题?

谢谢 :)

4

2 回答 2

1

我想你想这样做。您正在使用 C# 混淆 Javascript 变量。

您在 Razor 中的 C# 代码在服务器上执行并返回 html。它不知道isTrendClicked当您在浏览器中运行它时发生的 javascript 中设置了什么。在您进行服务器调用之前,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>
于 2013-05-22T14:55:11.393 回答
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>
于 2013-05-22T14:55:30.417 回答