Asp.net MVC上载的CSV文件数据显示为json
我试图上传一个csv文件到我的应用程序,但这并没有显示所有的行,我只得到一行这里是我的代码 模型 控制器Asp.net MVC上载的CSV文件数据显示为json,asp.net,csv,Asp.net,Csv,我试图上传一个csv文件到我的应用程序,但这并没有显示所有的行,我只得到一行这里是我的代码 模型 控制器 [HttpPost] public ActionResult AddparcelView(FileUploadViewModel filedata) { var attachedFile = System.Web.HttpContext.Current.Request.Files["CsvDoc"]; if (attachedFile == n
[HttpPost]
public ActionResult AddparcelView(FileUploadViewModel filedata)
{
var attachedFile = System.Web.HttpContext.Current.Request.Files["CsvDoc"];
if (attachedFile == null || attachedFile.ContentLength <= 0) return Json(null);
var csvReader = new StreamReader(attachedFile.InputStream);
var uploadModelList = new List<FileUploadViewModel>();
string inputDataRead;
var values = new List<string>();
var uploadModelRecord = new FileUploadViewModel();
var jsonToOutput = "";
while ((inputDataRead = csvReader.ReadLine()) != null)
{
values.Add(inputDataRead.Trim().Replace(" ", "").Replace(",", " "));
}
values.Remove(values[0]);
values.Remove(values[values.Count - 1]);
var i = 0;
foreach (var value in values)
{
i++;
var eachValue = value.Split(' ');
uploadModelRecord.Name = eachValue[0] != "" ? eachValue[0] : string.Empty;
uploadModelRecord.School = eachValue[1] != "" ? eachValue[1] : string.Empty;
uploadModelRecord.Age = eachValue[2] != "" ? eachValue[2] : string.Empty;
uploadModelRecord.DOB = eachValue[3] != "" ? eachValue[3] : string.Empty;
uploadModelRecord.ParentName = eachValue[4] != "" ? eachValue[4] : string.Empty;
//jsonToOutput = JsonConvert.SerializeObject(uploadModelRecord, Formatting.Indented);
Console.WriteLine(i);
}
return Json(uploadModelRecord);
}
因此,这只是我用json显示的一行数据,但我没有用其他4行获得完整的json数组。请帮助我,谢谢你在循环的每次迭代中都使用相同的实例
uploadModelRecord
。在第一次迭代中,它获取第一行的值。在第二次迭代中,这些值被第二行的值覆盖。等等
在每次迭代中创建一个新实例,并将它们添加到列表中。返回序列化列表
public ActionResult AddparcelView(FileUploadViewModel filedata)
{
...
//Remove line for variable uploadModelRecord.
var uploadModelRecords = new List<FileUploadViewModel>(); //List instead of single element.
foreach (var value in values)
{
i++;
var eachValue = value.Split(' ');
var uploadModelRecord = new FileUploadViewModel(); //Variable for current line.
uploadModelRecord.Name = eachValue[0] != "" ? eachValue[0] : string.Empty;
uploadModelRecord.School = eachValue[1] != "" ? eachValue[1] : string.Empty;
uploadModelRecord.Age = eachValue[2] != "" ? eachValue[2] : string.Empty;
uploadModelRecord.DOB = eachValue[3] != "" ? eachValue[3] : string.Empty;
uploadModelRecord.ParentName = eachValue[4] != "" ? eachValue[4] : string.Empty;
//jsonToOutput = JsonConvert.SerializeObject(uploadModelRecord, Formatting.Indented);
Console.WriteLine(i);
uploadModelRecords.Add(uploadModelRecord); //Here you add the variable for current line to the list.
}
return Json(uploadModelRecords); //Return the list instead of a single instance.
}
public ActionResult AddparcelView(文件上传视图模型文件数据)
{
...
//删除变量uploadModelRecord的行。
var uploadModelRecords=new List();//列表而不是单个元素。
foreach(值中的var值)
{
i++;
var eachValue=价值分割(“”);
var uploadModelRecord=新文件uploadViewModel();//当前行的变量。
uploadModelRecord.Name=eachValue[0]!=“eachValue[0]:string.Empty;
uploadModelRecord.School=eachValue[1]!=“”?eachValue[1]:string.Empty;
uploadModelRecord.Age=eachValue[2]!=“”?eachValue[2]:string.Empty;
uploadModelRecord.DOB=eachValue[3]!=“”?eachValue[3]:string.Empty;
uploadModelRecord.ParentName=eachValue[4]!=“”?eachValue[4]:string.Empty;
//jsonToOutput=JsonConvert.SerializedObject(uploadModelRecord,Formatting.Indented);
控制台写入线(i);
uploadModelRecords.Add(uploadModelRecord);//这里您将当前行的变量添加到列表中。
}
返回Json(uploadModelRecords);//返回列表而不是单个实例。
}
我试过使用var uploadModelRecords=new List();正如你给我的,这显示了一行多行的相同数据,我的意思是相同的行复制,直到每个值的长度实际工作现在我没有一行你提到的谢谢@diana
Age: "sdfdsf"
DOB: "test"
Name:"mohammad2"
ParentName:"test"
School:"32"
public ActionResult AddparcelView(FileUploadViewModel filedata)
{
...
//Remove line for variable uploadModelRecord.
var uploadModelRecords = new List<FileUploadViewModel>(); //List instead of single element.
foreach (var value in values)
{
i++;
var eachValue = value.Split(' ');
var uploadModelRecord = new FileUploadViewModel(); //Variable for current line.
uploadModelRecord.Name = eachValue[0] != "" ? eachValue[0] : string.Empty;
uploadModelRecord.School = eachValue[1] != "" ? eachValue[1] : string.Empty;
uploadModelRecord.Age = eachValue[2] != "" ? eachValue[2] : string.Empty;
uploadModelRecord.DOB = eachValue[3] != "" ? eachValue[3] : string.Empty;
uploadModelRecord.ParentName = eachValue[4] != "" ? eachValue[4] : string.Empty;
//jsonToOutput = JsonConvert.SerializeObject(uploadModelRecord, Formatting.Indented);
Console.WriteLine(i);
uploadModelRecords.Add(uploadModelRecord); //Here you add the variable for current line to the list.
}
return Json(uploadModelRecords); //Return the list instead of a single instance.
}