HttpSessionState返回HTML实体而不是字符

时间:2014-10-31 11:32:49

标签: javascript c# html asp.net asp.net-mvc

JavaScript函数尝试使用存储在HttpSessionState中的字符串值;字符串值还包含瑞典字符(例如,考虑单词MJÖLBY)。问题是特殊字符显示为HTML实体ö而不是真实字符。我试图通过使用编码来解决这个问题,但不幸的是它没有帮助,编码的结果是 undefined 。有没有想过如何传递Ö而不是实体代码ö,以便在JavaScript中使用并在浏览器上发布之前?

更新Session_Start()中,字符串由Session["City"] = "MJÖLBY";设置,然后在JavaScript中由var city = @Session["City"].ToString();

读取值

1 个答案:

答案 0 :(得分:0)

Razor中的@参数执行HTML编码。因此Ö转换为HTML实体是正常的。如果要实现该用途,可以使用Html.Raw方法。另外,请确保您对字符串进行了正确的JSON编码,否则如果会话中的值为MJÖ'LBY,您将获得非常糟糕的javascript:

<script type="text/javascript">
    var city = @Html.Raw(Json.Encode(Session["City"]));
</script>