【问题标题】:Razor + Javascript weird errorRazor + Javascript 奇怪的错误
【发布时间】:2014-03-14 09:51:04
【问题描述】:

我在我的剃须刀代码中看到了一个非常非常奇怪的错误,请参阅以下代码:

<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>

代码语法很完美,但是当我尝试运行它时,出现以下错误:

消息解析器错误:到达文件结尾或意外字符 在“”标记可以被分析之前。标记块内的元素 应该是完整的。它们必须是自动关闭的 ("
") 或具有 相应的结束标签(“

你好")。如果你想显示一个 "

问题是“

if (!(currentNow.setDate(now.getDate() + 1).valueOf() >= checkIN.valueOf() ))  

【问题讨论】:

    标签: javascript asp.net asp.net-mvc razor


    【解决方案1】:

    如果您尝试将脚本标签放在剃刀 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>
    }
    

    【讨论】:

    • @LaszloPapp 是在他添加上面的示例之前。我需要删除我的评论。
    • @LaszloPapp 那我不好。
    • 很好,这绝对是比我更好的解决方案。谢谢。
    【解决方案2】:

    您需要使用 @: 语法告诉 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>
    

    【讨论】:

    • 是的,我可以使用它,但我没有 2 行 javascript 代码,它几乎是 50 行。所以,我更喜欢避免这个选项。
    【解决方案3】:

    要“作弊” Razor,只需在行尾添加注释,并带有相反的括号:

    if (!(checkIN.valueOf() <= currentNow.setDate(now.getDate() + 1).valueOf())) { //>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-23
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2013-08-30
      相关资源
      最近更新 更多