2017-10-17 61 views
0

因此,我正在编写一个ASP.NET Core MVC应用程序,用户应该能够上传Excel文件,当文件上传时需要读取上传的文件并创建一个模型数据文件。MVC中的Shorten控制器方法

我目前在我的Controller方法中创建了这个模型,但是这使得我的方法很长。

我目前的解决方案是在我的控制器中创建一个类,它处理从Excel文件创建模型,但我觉得这是做错的一种方法。

所以我的问题是:什么是正确的地方把代码,读取我的Excel文件,并将其放入模型?

回答

0

您应该创建一个新的.NET标准库并在那里创建构建模型的类。

推荐的方法是使用该类作为实现和公开该类的所有公共方法(ExcelModelBuilder)的接口(IExcelModelBuilder)。通过这种方式,您可以将此服务注入到控制器构造函数中,作为奖励,您也可以轻松地对其进行单元测试。

您可以阅读更多关于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>(); 
} 
0

第1步:创建一个新的.NET标准库(服务)

第2步:添加到参考的是,MVC应用程序图书馆。

步骤3:如果您要执行的任务数量有限,则第二步创建一个将处理所有类似问题的类,但如果要将其分开并想要一个通用解决方案,请创建一个接口(IUpload),然后在类中实现其所有方法(Upload)。或者在启动文件中注册该服务: