2

我可以将数据写入 ASP.NET Web API 应用程序中的 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);

我想在 ASP.NET MVC 应用程序中做类似的事情(数据不同 - 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(byte[], string)' 是一个'方法',在给定的上下文中是无效的'

首先,我不认为我的代码是 err msg 似乎表明的那样,但仍然不被接受,所以:如何数据写入 ASP.NET MVC 中的 App_Data 文件夹?

4

1 回答 1

3

它看起来像一个命名空间冲突。编译器正在File从与预期不同的命名空间中获取。File应该使这项工作的类在System.IO命名空间中而不是System.Web.Mvc.Controller命名空间中。

这可以通过在调用时明确指定正确的命名空间来解决File.WriteAllText()

System.IO.File.WriteAllText(fullPath, bytes);
于 2016-05-11T16:29:19.523 回答