c# – 在文件上传时使用CSVHelper

c# – 在文件上传时使用CSVHelper,第1张

概述我试图使用CSVhelper插件来读取上传的CSV文件.这是我的modelBinder类: public class SurveyEmailListModelsModelBinder : DefaultModelBinder{ public override object BindModel(ControllerContext controllerContext, ModelBindin 我试图使用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# – 在文件上传时使用CSVHelper全部内容,希望文章能够帮你解决c# – 在文件上传时使用CSVHelper所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存