2011-06-16 58 views
2

我有一個自定義的dll加載到我的Web應用程序中,我更新了它並重新加載了我的主要Web應用程序中的引用。基本上,它的工作方式是用戶上傳一個由dll中的函數檢查的文件。然後,用戶可以單擊結果部分中重定向到應用程序主要部分的按鈕,以便他們可以選擇重新運行檢查器;我說節是因爲Web應用程序使用一個帶有兩個div的頁面,一個用於表單,另一個用於結果,後面的代碼則將結果div的可見性從結果div中交換出來,這是澄清的基本佈局。ASP.Net Web應用程序的dll加載問題

<body> 
    <div id="divForm" style="visibility: visible;"> 
    </div> 

<div id="divResults"> 
    </div> 
</body> 

重定向呼叫是在後面的代碼如下:

protected void btnReturn_Click(object sender, EventArgs e) 
     { 
      Response.Redirect("http://localhost/file_checker/"); 
     } 

和主件文件檢查器:

protected void Page_Load(object sender, EventArgs e) 
{ 
    divForm.Visible = true; 
    divResults.Visible = false; 
    if (Page.IsPostBack) 
    { 
     //Do file checking 

     //Show results 
     divResults.Visible = true; 
     divForm.Visible = false; 
    } 
} 

的Web應用程序工作正常第一遍但是,在接下來的所有傳球后,我都會注意到奇怪的行爲例如,我注意到結果頁面顯示的是舊版dll的陳舊內容,即它顯示了一個由較舊版本的dll生成的字符串,我已經刪除了字符串,但仍然生成。我不知道我是否正確重定向,或者如果我對重定向的工作有一些其他根本的誤解。任何幫助或洞察力,表示讚賞。

UPDATE:

好,而不是重定向,我只是清除了我的結果部分中的GridView和交換樣式的div的顯示主要部分和隱藏結果部分如下:

protected void btnReturn_Click(object sender, EventArgs e) 
     { 
      //Clear the Gridview and show the upload Form 
      GridView1.DataSource = null; //<--Is popoulated by a DataTable 
      divForm.Visible = true; 
      divResults.Visible = false; 

      //Response.Redirect("http://localhost/file_checker/"); 
     } 

這似乎解決了這個問題,我留下的一個縈繞的問題是,我正在使用Datatable在結果頁面中填充Gridview。在每次頁面加載或按鈕單擊事件後,Datatable是否自動處理?還是會持續?我只是想避免任何內存泄漏問題,因爲每個頁面加載實例化一個新的DataTable對象。

+0

什麼是「可見性:隱藏」?看起來像CSS,但它不在style =「」屬性中。 – 2011-06-16 17:02:42

+0

我假設psuedocode。他還需要在aspx頁面中使用runat =「server」和visible =「true」或visible =「false」才能使其工作。 – NerdFury 2011-06-16 17:05:36

+0

對不起,我會改正的,沒有可見性隱藏。你可以忽略,對於混淆抱歉。 – kingrichard2005 2011-06-16 17:06:23

回答

2

Response.Redirect向瀏覽器發送302響應。瀏覽器然後向新位置發出新請求。所以這不是服務器端操作,瀏覽器可以緩存響應,而不是再次進行呼叫。嘗試附加查詢字符串參數以使瀏覽器執行真正的請求。如果你有提琴手可用,你可以使用它來驗證,但你可能從緩存中獲取頁面。

protected void btnReturn_Click(object sender, EventArgs e) 
     { 
      Response.Redirect(String.Format("http://localhost/file_checker/?{0}", DateTime.Now.Ticks)); 
     } 
+0

對不起,什麼是提琴手? – kingrichard2005 2011-06-16 17:10:05

+0

這是一個網頁調試代理。有了它,你可以看到你的瀏覽器正在做的請求,並看到服務器的響應。這是一個非常方便的工具,用於調試網站,尤其是那些使用Ajax的網站。你可以在這裏得到它:http://www.fiddler2.com/fiddler2/ – NerdFury 2011-06-16 17:31:23

+0

謝謝NerdFury,我會研究它。我被召回到另一個項目,但今天晚些時候我會回到這個。感謝幫助。 – kingrichard2005 2011-06-16 17:47:08

相關問題