Razor服务器端代码块和Jquery

时间:2014-11-04 23:24:10

标签: c# jquery asp.net-mvc razor

我的应用程序是MVC5 c#,试图执行以下操作:

@{
    var s = Model.PhysicalExam;
    if (s == null)
        {
            <script>
                alert("1");
                $("#newSale1").hide();
            </script>
        }
    else
        {
            <script>
                alert("2");
                $("#newSale1").show();
            </script>
        }
}

警报有效,但不会隐藏或显示按钮。非常感谢您的建议。

2 个答案:

答案 0 :(得分:1)

我猜想在执行该脚本代码时,newSale1可能没有加载到DOM中。您应该将这些块放在文档就绪事件中。

$( document ).ready(function() {
    console.log( "ready!" );
});

答案 1 :(得分:1)

我可能会在页面底部找到类似的内容

<script type='text/javascript">
   var isExamNull = @((Model.PhysicalExam == null).ToString());
   $(document).ready( function(){
      if (isExamNull)
         $("#newSale1").hide();
      else
         $("#newSale1").show();
    };)
</script>

将脚本放在页面底部让html首先渲染,$(文档).ready确保文档准备就绪。使用@()将服务器端值写入脚本,另一种技术是使用隐藏并让脚本检查隐藏的值。