Visual Studio显示错误的错误

本文关键字:错误 显示 Studio Visual | 更新日期: 2023-09-27 18:03:06

我在Javascript中有一个函数,它会导致函数和其他函数中的错误,但代码编译得很好。如果我去掉这个函数,所有红色下划线的错误都消失了。我试着清理/重建/重新启动电脑,但没有任何变化。下面是函数

<script type="text/javascript">
function verifyRange(name, date, currentValue) {
    switch (name) {
        case "FC_OAT":
        case "Forecast Air Temp. (°C)":
            if (currentValue != null && currentValue < <%=ConfigurationManager.AppSettings["MinOAT"]%> || currentValue > <%=ConfigurationManager.AppSettings["MaxOAT"]%>)   {                     
                   createAnnotation("Forecast Air Temp. (°C)","Forecast Air Temp. (°C)" + " 'n<%=GetGlobalResourceObject(Session["culture"].ToString(),"OutOfBounds") %>'n[MIN:<%=ConfigurationManager.AppSettings["MinOAT"]%>, MAX:<%=ConfigurationManager.AppSettings["MaxOAT"]%>] 'n<%=GetGlobalResourceObject(Session["culture"].ToString(),"ValueIs") %> " + currentValue + "°C",date);                   
            }
        break*;*
        *case* "OAT":
        case "Air Temp. (°C)":
            if (currentValue != null && currentValue < <%=ConfigurationManager.AppSettings["MinOAT"]%> || currentValue > <%=ConfigurationManager.AppSettings["MaxOAT"]%>)   {                     
                   createAnnotation("Air Temp. (°C)","Air Temp. (°C)" + " 'n<%=GetGlobalResourceObject(Session["culture"].ToString(),"OutOfBounds") %>'n[MIN:<%=ConfigurationManager.AppSettings["MinOAT"]%>, MAX:<%=ConfigurationManager.AppSettings["MaxOAT"]%>] 'n<%=GetGlobalResourceObject(Session["culture"].ToString(),"ValueIs") %> " + currentValue + "°C",date);                   
            }
            break;
        default:
            break;
    }
}

*;*出错:

*case*得到错误:期望的'}'

在这个函数之后,我有这个代码

 $(document).ready(function *(*) {           
   alert('hello');
 }*)*;
 </script>

*(*)得到错误:期望的标识符

语法错误

当然,**是用来表示红色下划线的地方是由visual studio完成的,我的代码中没有这个。

我的问题是:有没有一种方法可以在不破坏visualstudio的情况下将服务器标签放在if中?这样做是一种不好的编码方式吗?

Visual Studio显示错误的错误

尝试重构你的代码,以便将服务器值分配给js变量,并将它们替换为if语句:

    var minOAT = <%=ConfigurationManager.AppSettings["MinOAT"]%>;
    var maxOAT = <%=ConfigurationManager.AppSettings["MaxOAT"]%>;
    var outOfBoundsString = "<%=GetGlobalResourceObject(Session["culture"].ToString(),"OutOfBounds") %>";
    var valueIsString = "<%=GetGlobalResourceObject(Session["culture"].ToString(),"ValueIs") %>";
    if (currentValue != null && (currentValue < minOAT || currentValue > maxOAT))   {                     
          createAnnotation(
             "Forecast Air Temp. (°C)",
             "Forecast Air Temp. (°C) 'n" + 
                 outOfBoundsString + "'n" +
                 "[MIN:" + minOAT + ", MAX:" + maxOAT + "]'n" + 
                 valueIsString + " " + currentValue + "°C", 
             date);
    }

这应该使代码看起来不那么混乱,希望错误会消失。