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();
}
是否有可能重构这些空检查?
您可以通过适当的路由和正则表达式约束消除第一个检查。第二个你可以用自定义模型绑定器来解决,这样你的动作方法签名就变成了:
public ActionResult CompleteTask(Task task)
,但这将需要引入一点丑陋到你的TaskBinder
,因为没有办法(我知道)从一个自定义绑定中终止请求处理,除了抛出一个异常,然后在你的基控制器类中捕获它。