【问题标题】:DRY principle on MVC projectMVC项目的DRY原则
【发布时间】:2015-06-04 19:26:42
【问题描述】:

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

    public ActionResult CompleteTask(Guid? id)
    {
        if (id.HasValue == false)
        {
            return HttpNotFound();
        }

        Task task = _service.GetTask(id.Value);

        if (task == null)
        {
            return HttpNotFound();
        }

是否可以重构这些空检查?

【问题讨论】:

    标签: c# refactoring


    【解决方案1】:

    您可以通过正确的路由和regex constraint 消除第一个检查。您可以使用自定义模型绑定器解决第二个问题,以便您的操作方法签名变为:

    public ActionResult CompleteTask(Task task)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      相关资源
      最近更新 更多