如何在ASP.NET MVC中保存文件中的对象列表

时间:2017-09-29 15:28:01

标签: c# asp.net asp.net-mvc file

我正在尝试将对象列表(包含文件URI)保存到ASP.NET MVC中的文件中,这样当我加载页面时,将加载并显示保存的文件URI。当我在Windows窗体中尝试它时,它运行得很好,但是,我无法在MVC中使用它。

作为参考,以下是我在Windows窗体中使用的代码,用于保存文件中的对象列表并加载文件的内容。

private void Save(List<Uri> list)
{
   BinaryFormatter b = new BinaryFormatter();
   FileStream file = File.Create(fileName);
   b.Serialize(file, list.ToList());
   file.Close();
}

private void LoadFile()
{
    try
    {
        BinaryFormatter b = new BinaryFormatter();
        FileStream file = File.Open(fileName, FileMode.Open);
        fileList = (List<Uri>)b.Deserialize(file);
        file.Close();
    }
    catch
    {
        MessageBox.Show("Error Loading File!");
    }
}

当我在Controller类中放入相同的代码时,我在以下行中收到错误:

FileStream file = File.Create(fileName);

FileStream file = File.Open(fileName, FileMode.Open);

错误:

&#39; Controller.File(byte [],string)&#39;是一种方法,在给定的上下文中无效

我的控制器名称是&#34; FilesController&#34;但我不认为名字有冲突。

任何帮助都将非常感谢! :) 非常感谢你!

1 个答案:

答案 0 :(得分:3)

  

'Controller.File(byte [],string)'是一个方法,在给定的上下文中无效

Controllerhas a member called File already。 (一种方法,因为错误状态。)所以当你在控制器中执行此操作时:

File.Create(fileName);

对名为File的东西的第一个引用是该方法,它使该行无效。如果要使用System.IO.File对象,则必须指定:

System.IO.File.Create(fileName);

理想情况下,这种基于依赖性的操作不会在控制器中发生。但是为了简单起见,如果应用程序在第一时间做的不多,那么在控制器中执行这些操作并不是完全不常见。