2010-02-16 35 views
0

建议的做法是在路由约束中进行数据查找,还是应该保持轻量级?在路线限制中查找数据?

我想如果用户试图访问不存在的产品有触发404路由约束 - 即:

/EN-US /产品/ myproductcode

但我m关心性能影响,即使查找是微不足道的。

感谢

回答

1

嗯,这听起来并不像一个很好的解决方案给我,即使表现会没有多大关系(你会连接到您的数据库中的控制器,以获得产品反正)。

即使产品代码不会在你的数据库不存在,但这并不意味着URL不比赛路线。

例如,1.0的NerdDinner处理您的情况是这样的:

public ActionResult Details(int id) { 
    Dinner dinner = dinnerRepository.GetDinner(id); 
    if (dinner == null) { 
     //Here, you can make sure the response status code is 404 
     return View("NotFound"); 
    } 
    return View(dinner); 
} 
+0

有没有产生404丢失数据的更好/更简单的方法 - 将一个动作过滤器是比较合适? – Micael 2010-02-16 08:12:37

+0

@Micael,我编辑了答案。查看示例代码。 – 2010-02-16 08:17:40