标识符在从web.config读取键值时在aspx页面中预期出现错误javascript

时间:2017-03-14 13:17:11

标签: javascript asp.net web-config key-value

我正在尝试使用.aspx页面中的javascript从web.config读取键值。 此页面包含在母版页中,脚本块添加在我的aspx页面的ContentPlaceHolder标记中,如下所示;这个问题在此之前被问到how to read values from web.config in javascript in aspx page,但没有明确的解决方案。有人建议返回服务器端,但我试图避免返回服务器以加速用户在页面上的工作......以下是我的代码:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <script type="text/javascript">

    function CheckCountry() {
        var country = '<%= System.Configuration.ConfigurationManager.AppSettings["LoginCountry"].ToString() %>';
        alert(country);
    }

    window.onload = CheckCountry; 

    </script>
       ....
</asp:Content>

但是每当我尝试运行我的项目时,我都会在Visual Studio 2010的“列表错误”框中看到此错误。 我也尝试了这个'<%=ConfigurationManager.AppSettings["LoginCountry"].ToString() %>'但是没有工作,抛出了同样的错误...... 可能是什么问题呢?如何在我的aspx页面中解决这个问题并从web.config获取country的值?

1 个答案:

答案 0 :(得分:1)

看起来,Visual Studo 2010编辑器对'和内联代码<%= ... %>的组合感到困惑。因为在Studio 2015中,以下行确实有效:

var country = '<%= System.Configuration.ConfigurationManager.AppSettings["LoginCountry"].ToString() %>';

你可以尝试用代码中的javascript创建整行,也许编辑器不会混淆。

<%= "var country2 = '" + System.Configuration.ConfigurationManager.AppSettings["LoginCountry"].ToString() + "';" %>

或代码背后:

public string javaScript;
protected void Page_Load(object sender, EventArgs e)
{
    javaScript = "var country = '" + ConfigurationManager.AppSettings["LoginCountry"].ToString() + "';";
}

然后在aspx页面上

function CheckCountry() {
    <%= javaScript %>
    .... etc
}