2012-02-03 42 views
1

我有兩個網站的應用程序,其中一個是設計完成,另一個是返回Images.I將我的值存儲到泛型類型,然後將它們轉換爲查詢字符串,並在設計頁面上設置Image src以返回變化。代碼變得越來越糟,我在每個地方都遇到了不同的數據(因爲我有幾個不同的對象,很少有相同的東西)。我最終放棄了與查詢字符串長時間的鬥爭,因爲我的數據總是被搞砸了,因爲1000轉換爲不同的類型。LosFormatter和數據序列化

現在好了,我創建的類爲我的對象,一切都是完美的,但現在當我序列化我的對象與LosFormatter然後把它粘起來,如:

<img id="img" src="Image.aspx?image=/wEy8AgAAQAAAP////8BAAAAAAAAAAwCAAAAQkxpa2VNeVN0dWZmLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJh..." </img> 

什麼也沒有發生。頁面「Image.aspx」甚至沒有被調用,也沒有任何錯誤。我試着設置斷點到Page_Load中,他們從來沒有得到hit.Everything工作正常使用泛型類型和「正常」的查詢string.Here是我LosFormatter代碼:

public void RedrawImage() 
{    
    System.Web.UI.LosFormatter formatter = new System.Web.UI.LosFormatter(); 
    StringWriter writer = new StringWriter(); 
    formatter.Serialize(writer,myObject); 
    img.ImageUrl = "~/Image.aspx?image=" + Server.HtmlEncode(writer.ToString()); 
} 

有沒有人有任何類似的問題?

+0

連接的ImageUrl是否有可能超過URL的最大長度(因此數據無效)? http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url – 2012-02-03 18:29:00

+0

Avarage網址達到約1600個字符,所以我不這麼認爲 – formatc 2012-02-03 18:30:28

回答

1

問題可能是查詢字符串中未轉義的字符。嘗試撥打Server.UrlEncode而不是Server.HtmlEncode

更新:根據發佈的評論,查詢字符串顯然太長。您可以增加Web.config中的限制:

<httpRuntime maxQueryStringLength="2048" /> 

請參閱http://www.asp.net/whitepapers/aspnet4

+0

我剛剛意識到並將其改爲HttpUtilty.UrlEncode但仍然不會調用頁面。 – formatc 2012-02-03 18:19:17

+0

如果在瀏覽器中直接導航到Image.aspx而沒有任何查詢字符串,是否會調用您的頁面? – 2012-02-03 18:23:14

+0

當我改變img.ImageUrl =「〜/ Image.aspx」; – formatc 2012-02-03 18:25:27