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在您的业务逻辑中使用。而且,事实上,你不应该。

您可以对控制器进行编码以接受来自客户端的文件并将其保存在本地服务器的某个位置。然后,将文件名传递给您的业务逻辑层以进行进一步处理。

还有你的后续问题:

问:我正在将文件读入内存流。是否可以将内存流传递给presenter,在presenter中执行业务逻辑,最后在view中设置文件上传状态?

是的,这也有效:传递流而不是文件名。

于 2013-01-16T23:01:42.777 回答