我对Programming / MVC很新,所以对任何不正确的术语表示道歉。
在使用Entity Framework的MVC应用程序中,我正在努力创建一些功能,允许用户上传CSV文件,解析它,并将其添加到我的数据库(首先由代码生成)。
我有一个项目模型,我希望用户能够为特定项目上传可交付成果的CSV文件。然后,我将有一个显示项目详细信息的视图,以及所有可交付物的完整列表。
按照一个非常简单的教程,我在视图中有CSV解析器,它在解析后显示DataTable。 View呈现正常,这就是我正在使用的控制器:
public ActionResult Upload()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Upload(HttpPostedFileBase upload)
{
if (ModelState.IsValid)
{
if (upload != null && upload.ContentLength > 0)
{
if (upload.FileName.EndsWith(".CSV"))
{
Stream stream = upload.InputStream;
DataTable csvTable = new DataTable();
using (CsvReader csvReader = new CsvReader(new StreamReader(stream), true))
{
csvTable.Load(csvReader);
}
return View(csvTable);
}
else
{
ModelState.AddModelError("File", "This file format is not supported");
return View();
}
}
else
{
ModelState.AddModelError("File", "Please Upload Your file");
}
}
return View();
}
教程:http://techbrij.com/read-csv-asp-net-mvc-file-upload
我现在不能理解我现在如何将这个Datatable放入我的Deliverables表中,同时参考Deliverables所针对的特定项目。例如,代码如何知道CSV文件中的可交付成果是针对Project#123而不是Project#122 ......
我希望能朝着正确的方向努力,并且非常感谢任何协助。