2013-12-18 126 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