1

プロの C# プログラマーにとって答えは簡単すぎるかもしれませんが、私は C# と ASP.NET MVC を初めて使用するので、これは少し難しいです。

戦略設計パターンについて学びました。私のプログラムでは、画像をアップロードできる必要があります。これは、(1) ファイル システムにアップロードできるようにする方法と、(2) データベースにアップロードする方法の 2 つで実現します。そのために、これら 2 つのアルゴリズムに戦略設計パターンを使用します。

問題は、ソリューションの MVC アプリケーション Project 以外の別のクラス ライブラリに Strategy を実装していることです。

そして、コントローラーで正常に機能したこのコードは、クラス ライブラリでは機能しません。

これはコントローラーにありました

[HttpPost]
    public void UploadFile() {
        string physicalPath = HttpContext.Server.MapPath("../") + "UploadImages" + "\\";

        for (int i = 0; i < Request.Files.Count; i++) {

            Request.Files[0].SaveAs(physicalPath + System.IO.Path.GetFileName(Request.Files[i].FileName));
        }
    }

そして、これはクラスライブラリにあります。

public class UploadToFile : IUpload {
    public void Upload() {
        string physicalPath = HttpContext.Server.MapPath("../") + "UploadImages" + "\\";
        for (int i = 0; i < Request.Files.Count; i++) {
            Request.Files[0].SaveAs(physicalPath + System.IO.Path.GetFileName(Request.Files[i].FileName));
        }
    }
}

クラス ライブラリが and にアクセスできない可能性がHttpContextありRequestます。

using System.Web.Mvc;using System.Web;正しく参照されています。

答えは簡単だと思いますが、30 分間 Google で検索しても、このトピックの適切なエスカレーションが見つかりませんでした。

ありがとう。

4

1 に答える 1