2016-05-11 14 views
1

私はそうのように私のASP.NET Web APIをアプリにApp_Dataフォルダにデータを書き込むことができます。私は、ASP.NET MVCアプリケーション(データが異なる場合に似た何かをしたいASP.NET MVCのApp_Dataフォルダにデータを書き込むにはどうすればよいですか?

string appDataFolder = HttpContext.Current.Server.MapPath("~/App_Data/"); 
var htmlStr = // method that returns html as a string 
string htmlFilename = "platypus.html"; 
string fullPath = Path.Combine(appDataFolder, htmlFilename); 
File.WriteAllText(fullPath, htmlStr); 

- PDFファイルhtmlファイルの代わりに)、 "ファイル"は認識されません。私はこれを試してみてください。

using (var ms = new MemoryStream()) 
. . . 
var bytes = ms.ToArray(); 
string appDataFolder = AppDomain.CurrentDomain.GetData("DataDirectory").ToString(); 
string pdfFilename = "test.pdf"; 
string fullPath = Path.Combine(appDataFolder, pdfFilename); 
File.WriteAllText(fullPath, bytes); 

...しかし、取得するには、「'System.Web.Mvc.Controller.File(バイト[]、string)は' 与えられた中では有効ではありません 'メソッド' でありますそう、コンテキスト」そもそも

は、私は私のコードはERRのMSGは、それがあることを示しているようだ何だとは思わないが、それにもかかわらず、それが受け入れられていない:私はApp_Dataフォルダにデータを書き込むことができますかASP.NET MVCで?

+1

は 'File'予選完全に試してみてください - それをやったこと、はい>' System.IO.File.WriteAllText' – petelids

+0

を。奇妙なことはオプションではない/提供されているか提案されている。 –

答えて

3

名前空間の衝突のようです。コンパイラは、期待どおりの異なる名前空間からFileを取得しています。この作業を行うべきFileクラスは、名前空間ではなく、System.IO名前空間にあります。

これはFile.WriteAllText()を呼び出すときに明示的に正しい名前空間を指定することによって固定することができます。

System.IO.File.WriteAllText(fullPath, bytes); 
関連する問題