JavaScript函数尝试使用存储在HttpSessionState中的字符串值;字符串值还包含瑞典字符(例如,考虑单词MJÖLBY)。问题是特殊字符显示为HTML实体ö
而不是真实字符。我试图通过使用编码来解决这个问题,但不幸的是它没有帮助,编码的结果是 undefined 。有没有想过如何传递Ö而不是实体代码ö
,以便在JavaScript中使用并在浏览器上发布之前?
更新
在Session_Start()
中,字符串由Session["City"] = "MJÖLBY";
设置,然后在JavaScript中由var city = @Session["City"].ToString();
答案 0 :(得分:0)
Razor中的@
参数执行HTML编码。因此Ö
转换为HTML实体是正常的。如果要实现该用途,可以使用Html.Raw
方法。另外,请确保您对字符串进行了正确的JSON编码,否则如果会话中的值为MJÖ'LBY
,您将获得非常糟糕的javascript:
<script type="text/javascript">
var city = @Html.Raw(Json.Encode(Session["City"]));
</script>