MVC项目中的DRY原则

本文关键字:DRY 原则 项目 MVC | 更新日期: 2023-09-27 17:53:33

我有一个MVC项目,我在整个项目中不断重复以下类型的代码。

    public ActionResult CompleteTask(Guid? id)
    {
        if (id.HasValue == false)
        {
            return HttpNotFound();
        }
        Task task = _service.GetTask(id.Value);
        if (task == null)
        {
            return HttpNotFound();
        }

是否有可能重构这些空检查?

MVC项目中的DRY原则

您可以通过适当的路由和正则表达式约束消除第一个检查。第二个你可以用自定义模型绑定器来解决,这样你的动作方法签名就变成了:

public ActionResult CompleteTask(Task task)

,但这将需要引入一点丑陋到你的TaskBinder,因为没有办法(我知道)从一个自定义绑定中终止请求处理,除了抛出一个异常,然后在你的基控制器类中捕获它。