我正在尝试使用.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的值?
答案 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
}