所以我正在编写一个ASP.NET核心MVC应用程序,用户应该可以上传Excel文件,当文件上传时我需要读取上传的文件,创建一个文件内的数据模型。
我目前正在我的Controller方法中创建此模型,但这使我的方法很长。
我目前的解决方案是在我的Controller中创建一个类,它处理从Excel文件创建模型,但我觉得这是错误的方法。
所以我的问题是:放置读取我的excel文件的代码并将其放入模型的正确位置是什么?
答案 0 :(得分:0)
您应该创建一个新的.NET标准库,并在那里创建构建模型的类。
推荐的方法是使用类作为实现和接口(IExcelModelBuilder)来公开该类的所有公共方法(ExcelModelBuilder)。通过这种方式,您可以将此服务注入到控制器构造函数中,作为奖励,您也可以轻松地对其进行单元测试。
您可以阅读有关Dependency Injection in .NET Core的更多信息。
您可以在启动文件中注册该服务:
// This method gets called by the runtime.
// Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
{...}
services.AddTransient<IExcelModelBuilder, ExcelModelBuilder>();
}
答案 1 :(得分:0)
步骤1:创建新的.NET标准库(服务)
步骤2:将引用添加到该库的mvc应用程序中。
步骤3:如果您要执行的任务数量有限,则第二步创建一个将处理所有类似内容的类, 但是如果你想分开它并想要一个通用的解决方案然后创建一个接口(IUpload),然后在一个类中实现它的所有方法(上传)。还要在你的启动文件中注册该服务: