c# – 在文件上传时使用CSVHelper
发布时间:2020-12-15 04:30:57 所属栏目:百科 来源:网络整理
导读:我试图使用CSVhelper插件来读取上传的CSV文件.这是我的modelBinder类: public class SurveyEmailListModelsModelBinder : DefaultModelBinder{ public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext)
我试图使用CSVhelper插件来读取上传的CSV文件.这是我的modelBinder类:
public class SurveyEmailListModelsModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { var csv = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); var file = ((csv.RawValue as HttpPostedFileBase[]) ?? Enumerable.Empty<HttpPostedFileBase>()).FirstOrDefault(); if (file == null || file.ContentLength < 1) { bindingContext.ModelState.AddModelError( "","Please select a valid CSV file" ); return null; } using (var reader = new StreamReader(file.InputStream)) using (var csvReader = new CsvReader(reader)) { return csvReader.GetRecords<SurveyEmailListModels>().ToArray(); } } } 这些是我要映射到的对象: public class SurveyEmailListModels { [Key] [CsvField(Ignore = true)] public int SurveyEmailListId { get; set; } [CsvField(Index = 0)] public int ProgramId { get; set; } [CsvField(Index = 1)] public virtual SurveyProgramModels SurveyProgramModels { get; set; } [CsvField(Index = 2)] public string SurveyEmailAddress { get; set; } [CsvField(Index = 3)] public bool SurveyResponded { get; set; } } 在Visual Studio调试器中,我收到一个错误: > base {“在访问数据之前必须先在读取器上调用read”.)CsvHelper.CsvHelperException {CsvHelper.CsvReaderException} 解决方法
没有使用插件,但错误信息似乎很清楚.在访问结果之前,必须有一个Read()函数调用.尝试将您的代码更改为如下所示:
using (var reader = new StreamReader(file.InputStream)) using (var csvReader = new CsvReader(reader)) { csvReader.Read(); return csvReader.GetRecords<SurveyEmailListModels>().ToArray(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – WPF Listview数据绑定到通用List,由WCF服务动态填充
- xml编码格式在tomcat下运行出错,eclipse里面直接运行没有问
- ruby – 与Sinatra的命令行参数
- TI之TMS320F28XX DSP介绍[PCB布线EMI/EMC注意点
- 具有XML支持的Spring Boot REST
- 辛星浅析postgresql中的全文索引(上)
- c# – 未使用UWP Windows 10触发的OnSuspending事件
- flash builder 4.6在debug调试时需要系统安装flashplayer d
- ruby-on-rails – 您的众包翻译管理系统建议是什么?
- c# – MVC中的ViewModels和对象操作