我的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的红色下划线,我的代码中没有这个。
我的问题是:有没有办法让服务器标签在if而不破坏visualstudio?这样做是不是一种糟糕的编码方式?
答案 0 :(得分:2)
尝试重构代码,以便将服务器值分配给js vars并将其替换为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);
}
这应该使代码看起来不那么混乱,希望错误消失。