2013-09-23 102 views
0

我正在開發一個asp.net應用程序。 在這一頁上我有一個文本框和一個按鈕。 當我點擊按鈕時,應該會出現一個彈出窗口,它會要求我將TextBox的文本保存在我所需路徑的文件中。爲什麼AspCompat = true讓我的asp網絡應用程序變慢?

它給我錯誤 「在調用OLE之前,當前線程必須設置爲單線程單元(STA)模式確保您的Main函數具有標記的STAThreadAttribute此異常僅在調試器附加到進程」

protected void ButtonIDSaveAs_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 
      saveFileDialog1.Title = "Save an Image File"; 
      //saveFileDialog1.ShowDialog(); 
      if (saveFileDialog1.FileName != "") 
      { 
       using (StreamWriter sw = new StreamWriter(saveFileDialog1.OpenFile())) 
       { 
        sw.Write(TextBoxIDPVMContent.Text); 
        sw.Close(); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      // ex; 
     } 
    } 

所以要removie這個錯誤,我已經改變了我的aspx文件 AspCompat =‘真’在

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ABC.cs" Inherits="XYZ" ValidateRequest = "false" %> 

它讓我的應用程序忌用。 那麼我該如何擺脫這個問題? 或者有沒有其他方法可以實現這個功能? 爲什麼它使我的應用程序非常慢?

在另一方面,我已經創建了一個小型的asp web應用程序,做同樣的工作,就像我有一個文本框和一個按鈕,一個頁面,我想文本框的數據保存到一個文件中。在這個應用程序中它的工作相當好。

,因爲早上我被困在這個問題上,我知道會有這個問題背後的一些小竅門。

+0

它看起來像你想直接轉化Windows窗體應用到Web表單應用程序。這不可能完成,沒有可怕的結果。 – TheGeekZn

+0

編程沒有「竅門」。唯一的竅門是瞭解你在做什麼。您正嘗試在網站項目中顯示Windows窗體控件(SaveFileDialog)。這不起作用。 – CodeCaster

回答

2

您不能在網絡環境中使用SaveFileDialog。這是針對Windows窗體的。混合Windows窗體組件和ASP.NET可以有不同尋常的副作用和你想讓它,它不會工作。

這就是爲什麼我認爲你的電話註釋,以ShowDialog

+1

加上,這是一個新的問題,這與這個不相關。 –

+0

是的客戶端計算,我已經評論ShowDialog,因爲這條線給我錯誤 –

相關問題