gpt4 book ai didi

asp.net-mvc - 我应该将 Controller 业务逻辑放在 MVC3 中的哪个位置

转载 作者:行者123 更新时间:2023-12-03 11:38:35 25 4
gpt4 key购买 nike

我理解 MVC 就是把东西放在正确的位置和逻辑应该放在的位置。我的 Controller 操作被业务逻辑(与数据存储无关)填满了,我觉得我应该开始将一些逻辑移动到不同的地方。

我应该在哪里放置这个逻辑是否有约定?例如,我有以下 Controller 位于 Controller 文件中:

adminPowerController 

public ActionResult Create(string test1)
// business logic
// business logic
// business logic
return View();
}
public ActionResult Index(string test1)
// business logic
// business logic
// business logic
return View();
}

最佳答案

建议将业务逻辑放置在服务层中。所以你可以定义一个代表业务操作的接口(interface):

public interface IMyService
{
DomainModel SomeOperation(string input);
}

然后实现这个服务。最后 Controller 将使用它:
public class MyController: Controller
{
private readonly IMyService _service;
public class MyController(IMyService service)
{
_service = service;
}

public ActionResult Create(string input)
{
var model = _service.SomeOperation(input);
var viewModel = Mapper.Map<DomainModel, ViewModel>(model);
return View(viewModel);
}
}

并配置您的 DI 框架以将服务的正确实现传递给 Controller ​​。

备注:在我提供的示例中,我使用了 AutoMapper在域模型之间转换为传递给 View 的 View 模型。

关于asp.net-mvc - 我应该将 Controller 业务逻辑放在 MVC3 中的哪个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341724/

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