不确定标题有多清楚。 我有文件上传脚本。使用名为testdata的javascript动态创建输入字段。为用户决定上传的每个文件创建一个输入字段。到目前为止我的模型只是得到了该领域的价值。
public string testdata { get; set; }
稍后在我的控制器中我得到了值并将其写入文件。 问题是当上传多个文件时,控制器从所有输入中收集值并在每一行上将它们全部写在一起。我想要的是有一个单独的行与每个输入(每次上传)的值。控制器只是我要求它做的事情。我不知道如何访问输入字段的id。我知道我需要改变我的模型,但不知道如何。任何帮助都会被贬低。谢谢!
控制器,如果不是很清楚:
[HttpPost]
public ActionResult Index(UploadsModel model, IEnumerable<HttpPostedFileBase> files)
{
string uploadDir = Server.MapPath("~/App_Data/uploads");
foreach (string fileKey in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileKey];
StreamWriter tw = System.IO.File.AppendText(Path.Combine(uploadDir, "post_data.txt"));
tw.WriteLine(System.DateTime.Now + " " + file.FileName + " " + model.testdata);
tw.Close();
file.SaveAs(Path.Combine(uploadDir, file.FileName));
}
//could go somewhere else...
return RedirectToAction("Index");
}
编辑: 找到了解决方法。将为每个常规字段动态创建隐藏字段。将第一个值传递给它,将在我的模型中创建新属性,上传和保存时,我将比较文件名和隐藏字段值。