我正在尝试使用我的.aspx页面中的javascript从web.config读取键值。此页面包含在主页中,脚本块在我的aspx页面中的contentplaceholder标签中添加了;在此处询问了这个问题。有人建议返回服务器端,但我试图避免返回服务器,以便在页面上加速用户的工作...所以下面是我的代码:
<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获取国家的价值?
看来,Visual Studo 2010编辑器对'
和Inline Code <%= ... %>
的组合感到困惑。因为在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
}