C# 以下哪一部分进入模型与控制器?
我的应用程序的一个步骤需要执行5项任务C# 以下哪一部分进入模型与控制器?,c#,asp.net-mvc,C#,Asp.net Mvc,我的应用程序的一个步骤需要执行5项任务 接收CSV文件作为用户上载的一部分 将CSV中的每一行解析为规范表示 创建与该表示相关的ORM POCO 将每个项目保存到数据库中 向每个POCO中定义的电子邮件地址发送电子邮件 我已经有了一个数据库ORM的存储库,而且我至少已经知道控制器不应该自己创建一个SmtpClient,但是控制器中有多少“胶水”呢?在代码气味下暴露比我的代码片段更多的细节吗 public ActionResult Index(HttpPostedFileBase file) {
public ActionResult Index(HttpPostedFileBase file) {
var result = model.HandleFileUpload (file);
if (result.Success)
{
return SuccessAction("Success");
} else {
return FailureAction("Failure");
}
}
如果这一切都属于模型,那么我正在做的工作类型叫什么,如果我只是将较低级别的东西“粘合”在一起?您描述的瘦控制器对我来说很不错。它易于测试,并且通过在模型中创建一组松散耦合的服务类,使您能够轻松遵守单一责任原则,每个服务类处理流程的不同步骤。 这还允许您在需要时在MVC应用程序的范围之外使用代码 因此,我设想您有一个
FileHandler
类来实现HandleFileUpload
方法。
这将定义流程的步骤,可能调用文件解析器
、存储库
、和EmailSender
类,每个类都可以通过接口和注入文件处理程序的依赖项来使用
你在做什么工作?开发您可以引以为豪的可维护软件:-)在实现这一点之后,这是一个非常干净的解决方案,允许了大量的可测试性。这也很容易理解。