2013-12-18 90 views
0

我无法通过web.config进行读取。我的web.config是如下从javascript中读取web.config

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<configSections> 
    <section name="datalayers" type="Basic" /> 
</configSections> 

<maplayers> 

    <openlayers projection="EPSG:900913" displayProjection="EPSG:27700"/> 
</maplayers> 
</configuration> 

要读我做了以下

var conn = '<%=ConfigurationManager.maplayers.displayprojection %>' 
alert(conn); 

我的页面有什么明显错误不会加载。请帮忙。在ASP.NET

[ConfigurationProperty("displayprojection", IsRequired = false)] 
public string DisplayProjection 
{ 
    get { return (string)this[ "displayprojection" ]; } 
    set { this[ "displayprojection" ] = value; } 
} 

阅读财产试图写JSON在ASP.NET

JsonSerializer serializer = new JsonSerializer(); 
if (DisplayProjection != string.Empty) 
{ 
    writer.WritePropertyName("displayProjection"); 
    writer.WriteValue(DisplayProjection); 
} 

    writer.WriteEnd(); 
+0

定义“不加载”。你有错误吗?你有没有得到一个HTTP状态码? – Quentin

+0

控制台为错误写入的内容是什么?有没有试图把'.ToString()'放在后面? – 2013-12-18 15:47:24

+0

我试图把ToString(),但我的页面不加载。没有http错误,但页面只是挂起。通过ASP.NET获取web.cofig值到javascript的正确方法是什么? – user2837961

回答

0

ASP.NET只能产生ASCX,ASPX或类似的服务器生成的页面动态内容。如果您试图将这些标签添加到JavaScript中,它将不起作用。

如果这是一个JavaScript文件,它将失败,因为服务器将JavaScript文件作为纯文本文件传递给浏览器。

var conn = '<%=ConfigurationManager.maplayers.displayprojection %>'
alert(conn);

这不是从你的问题不清楚,但我的猜测是你的警告对话框包含实际的文本字符串“<%= ConfigurationManager.maplayers.displayprojection%>”,这是你的问题是具有。

请将它添加到标题中的ASPX页面中。

<html> 
<head> 
<title>Your Page</title> 
<script type="text/javascript"> 
    var conn = '<%=ConfigurationManager.maplayers.displayprojection %>' 
    alert(conn); 
</script> 
... 
+0

我明白它不会通过javascript工作(如你所解释) 我的ASP.NET代码读取它并显示在json中。不幸的是,这也不起作用。我在主要问题中添加了我的ASP代码 – user2837961

0

你的web.config不可用在客户端。它受到Web服务器的保护,并没有提供。 Web.config文件通常包含敏感信息,例如连接字符串(密码)。您有充分的理由在客户端提供这些信息吗?

+1

他没有从客户端读取它。他从服务器端读取它(错误地)。 – MikeSmithDev

+0

的确如此,但是这样做的警告依然存在。 – mason

+0

如果他想从服务器端读取web.config中的自定义属性并将该字符串显示给最终用户,则不一定是安全问题。 – MikeSmithDev