gpt4 book ai didi

asp.net-mvc-2 - 将 HttpFileCollectionBase 传递到业务层 - 不好?

转载 作者:行者123 更新时间:2023-12-02 04:53:34 24 4
gpt4 key购买 nike

希望有一个简单的解决方案。

我有我的 MVC2 项目,它允许上传某些表单上的文件。我正在努力保持我的 Controller 的精简,并处理此类事情的业务层内的处理。

也就是说,HttpFileCollectionBase 显然位于 System.Web 程序集中。

理想情况下,我想调用以下内容:

UserService.SaveEvidenceFiles(MyUser user, HttpFileCollectionBase files);

或类似的东西,让我的业务层处理这些东西保存方式和位置的逻辑。

但是,在关注点分离等方面让我的模型层引用 System.Web 感觉有点恶心。

所以,我们(据我所知)有几个选择:

  1. 网络项目处理这个问题,我的 Controller 变得越来越胖
  2. 将 HttpFileCollectionBase 映射到我的业务层喜欢的内容
  3. 传递该集合,并接受我从我的业务项目引用 System.Web

希望在这里得到一些关于此类事情的最佳实践方法的反馈 - 即使不是特别在上述背景下。

最佳答案

如果您想将逻辑保留在 Controller 之外,我只需使用自定义模型绑定(bind)器 - 然后您可以将提取的数据粘贴到模型中,您可以使用该模型执行您想要的操作。

http://www.heartysoft.com/post/2010/05/06/ASPNET-MVC-ModelBinding-Multiple-File-Uploads-to-an-Array.aspx

澄清 - 我认为模型绑定(bind)器和其他拦截技术是将逻辑从 Controller 中分离出来并分成可单独维护的容器的便捷方法 - 这是基础设施代码/Web 逻辑,因此不属于业务逻辑,因此可以愉快地引用 System.Web 等。

说明 - 实际上,这是您的选项 2 的变相,您使用模型绑定(bind)器将不友好的数据映射到代码的其余部分可以识别的内容,但您的方式却无法识别不要损害您干净的 Controller 。

关于asp.net-mvc-2 - 将 HttpFileCollectionBase 传递到业务层 - 不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com