【发布时间】:2012-01-22 08:44:26
【问题描述】:
我一直在为我的控制器操作使用以下模式:
public ActionResult Create(CreateViewModel model) {
if( !ModelState.IsValid ) {
return View(model);
}
var project = new Project {
Name = model.Name,
// ...
};
projectRepository.Add(project);
return RedirectToAction("Index");
}
这适用于简单的场景,但我遇到过一些存储库不够用的情况。我创建了一个服务层/类,它将处理保存项目和任何额外的业务逻辑(不是带有流畅验证或数据注释的正常验证)。
public class ProjectService : IProjectService {
void AddProject(Project project) {
// do business logic
// ...
repository.Add(project);
}
}
我的服务层如何轻松地与我的控制器通信?
这些是我想与控制器沟通的类型:
- 业务逻辑/验证错误
- 数据库故障(保存失败等)
如果不从服务层返回真/假或状态代码,我该如何做到这一点?
【问题讨论】:
标签: c# asp.net-mvc service-layer