剃须刀&x2B;Javascript奇怪错误

剃须刀&x2B;Javascript奇怪错误,javascript,asp.net,asp.net-mvc,razor,Javascript,Asp.net,Asp.net Mvc,Razor,我在razor代码中看到一个非常奇怪的错误,请参见以下代码: <script type="text/javascript"> @if (Model.SomeVerification) { <text> if (startHour.getTime() >= maxStartHour.getTime() || startHour.getTime() < maxStartHour.getTime()) { if (!(checkIN.valu

我在razor代码中看到一个非常奇怪的错误,请参见以下代码:

<script type="text/javascript">
@if (Model.SomeVerification)
{
   <text>
   if (startHour.getTime() >= maxStartHour.getTime() || startHour.getTime() < maxStartHour.getTime()) {
      if (!(checkIN.valueOf() <= currentNow.setDate(now.getDate() + 1).valueOf())) {
      //The code goes on...
      }
   }
  </text>
}
</script>

如果您尝试将脚本标记放在razor if块中,而不是使用文本标记,该怎么办

例如:

@if (Model.SomeVerification)
{
    <script type="text/javascript">
       if (startHour.getTime() >= maxStartHour.getTime() || startHour.getTime() < maxStartHour.getTime()) {
          if (!(checkIN.valueOf() <= currentNow.setDate(now.getDate() + 1).valueOf())) {
          //The code goes on...
          }
       }
    </script>
}
@if(Model.SomeVerification)
{
如果(startHour.getTime()>=maxStartHour.getTime()| | startHour.getTime()if(!(checkIN.valueOf()您需要使用@:语法告诉Razor将每个if语句解析为文本。
如果只有一个If语句,则文本标记可以工作,但由于嵌套了两个If语句,因此最好使用@:语法

<script type="text/javascript">
@if (Model.SomeVerification)
{

   @:if (startHour.getTime() >= maxStartHour.getTime() || startHour.getTime() < maxStartHour.getTime()) {
      @:if (!(checkIN.valueOf() <= currentNow.setDate(now.getDate() + 1).valueOf())) {
      //The code goes on...
      }
   }

}
</script>

@if(型号验证)
{
@:if(startHour.getTime()>=maxStartHour.getTime()| | startHour.getTime()@:如果(!(checkIN.valueOf()是的,我可以使用它,但我没有2行javascript代码,几乎有50行。因此,我宁愿避免使用此选项。@LaszloPapp这是在他添加上述示例之前。我需要删除我的注释。@LaszloPapp我的不好。非常好,这肯定是一个比我更好的解决方案。谢谢。
<script type="text/javascript">
@if (Model.SomeVerification)
{

   @:if (startHour.getTime() >= maxStartHour.getTime() || startHour.getTime() < maxStartHour.getTime()) {
      @:if (!(checkIN.valueOf() <= currentNow.setDate(now.getDate() + 1).valueOf())) {
      //The code goes on...
      }
   }

}
</script>