2014-11-04 47 views
0

我的应用程序是MVC5 C#,试图执行以下操作:刀片服务器端代码块和jQuery

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

警报工作,但不显示或隐藏按钮。将不胜感激你的建议。

+3

你在脚本运行的时候加载了jQuery吗? – petelids 2014-11-04 23:25:06

+1

并且此时存在带'id =“newSale1”'的元素。这是在您的页面中呈现脚本的可怕方式。 – 2014-11-04 23:29:15

+0

对这两个评论都是。 – hncl 2014-11-04 23:34:57

回答

1

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

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

你说得对,我以前就是这么称呼的。谢谢。 – hncl 2014-11-04 23:40:45

1

我可能会像这样走在页面

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

在页面的底部把脚本的底部让HTML渲染首先,$(文件)。就绪保证,那么,文件就绪了。使用@()会将您的服务器端值写入您的脚本中,另一种技术是使用隐藏并使脚本检查隐藏的值。

+0

谢谢,这将有助于重构我的页面。 – hncl 2014-11-04 23:48:36