路线约束中的数据查找?

时间:2010-02-16 07:32:57

标签: asp.net-mvc

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

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

/ EN-US /产品/ myproductcode

但我担心性能影响,即使查找很简单。

由于

1 个答案:

答案 0 :(得分:1)

嗯,这对我来说听起来不是一个好的解决方案,即使性能无关紧要(无论如何都要连接到控制器中的数据库以获得产品)。

即使数据库中的产品代码不存在,也不表示该网址匹配您的路线。

例如,NerdDinner 1.0会像这样处理你的情况:

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);
}