例如:
double d = 2.24;
如果文化是'fr'
d.ToString() -> "2,24"
如果文化是'en'
d.ToString() -> "2.24"
这种隐含的基于文化的演员阵容可能会产生很多错误。
在aspx.cs中
<script>
var n = <% Response.Write(d.ToString()); %> // if 'fr' n = 2,24 -> js syntax error
</script>
我们可以通过
来避免这种情况Convert.ToString(d, CultureInfo.InvariantCulture);
是否有任何选项可以默认为ToString()创建此InvariantCulture
?
知道为什么默认完成它?
答案 0 :(得分:3)
您可以使用web.config的<globalization>
元素并设置文化和UI文化。例如:
<system.web>
<globalization culture="en-US" uiCulture="en-US">
</system.web>
顺便代替:
<script>
var n = <% Response.Write(d.ToString()); %> // if 'fr' n = 2,24 -> js syntax error
</script>
我建议您始终使用JavaScriptSerializer以便在将数据传递给javascript时将JSON序列化值:
<script>
var n = <%= new JavaScriptSerializer.Serialize(d) %>;
</script>