我一直在使用下面的模式爲我的控制器操作的控制器進行通信:MVC - 應該如何服務層與
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);
}
}
如何將我的業務層容易地與我的控制器進行通信?
這些都是類型的東西,我想傳達給控制器:
- 業務邏輯/驗證錯誤
- 數據庫故障(未能挽救等)
如何我這樣做不只是返回服務層的真/假或狀態代碼?