2017-10-17 4 views
0

私は、ユーザーがExcelファイルをアップロードできるようにするASP.NET Core MVCアプリケーションを作成しています。ファイルがアップロードされると、アップロードされたファイルを読み込む必要があります。ファイル。MVCでコントローラーメソッドを短くする

私は現在、このモデルをコントローラメソッドで作成していますが、これは私のメソッドをかなり長くしました。

私の現在の解決策は、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:実行するタスクが限られている場合は、ステップ2でそのようなすべてのものを処理するクラスを作成しますが、それを分離して汎用ソリューションが必要な場合は、インターフェイスを作成します(IUpload)し、すべてのメソッドをクラス(Upload)に実装します。また、起動ファイルにサービスを登録します。

関連する問題