2

私はMVPパターンに不慣れです。ファイルをサーバーにアップロードし、アップロード後にいくつかの検証手順とデータベース操作を実行するロジックをどこに記述すればよいか、私にはよくわかりません。お知らせ下さい。

public interface IPresenter
{
    void UploadFile(string fileName); //For simplicity, file name is passed;
                                      //it can be declared as a property  
}    

public interface IDefaultView
{
     void Upload();
}

public class DefaultPresenter : IPresenter
{
     protected DefaultPresenter() {}

     public DefaultPresenter(IDefaultView defaultview)
     {
        this.defaultView = defaultView;
     }

     public void UploadFile(string fileName)
     {
         //Do I need to write saving functionality here or call
         //defaultView.Upload(fileName)?
         //
         //From online articles, I have seen all business functionality written here.
         //But I think I will not be able to use System.Web in this layer.
     }
}

public partial class UploadExtract: IDefaultView    
{
    public void Upload(fileName)
    {                
    }
}
4

1 に答える 1

1

System.Webビジネス ロジックでは使用できません。実際、そうすべきではありません。

クライアントからファイルを受け取り、ローカル サーバーのどこかに保存するようにコントローラーをコーディングできます。次に、さらに処理するためにファイル名をビジネス ロジック レイヤーに渡します。

そしてあなたのフォローアップの質問:

Q. ファイルをメモリ ストリームに読み込んでいます。メモリ ストリームをプレゼンターに渡し、プレゼンターでビジネス ロジックを実行し、最後にファイルのアップロード ステータスをビューに設定することをお勧めしますか?

はい、それも機能します。ファイル名の代わりにストリームを渡します。

于 2013-01-16T23:01:42.777 に答える