Ну, это не похоже на хорошее решение для меня, хотя производительность не будет иметь большого значения (вы все равно подключитесь к своей БД в контроллере, чтобы получить продукт).
Даже если код продукта не существует в вашей БД, это не означает, что URL не соответствует вашему маршруту.
Например, 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);
}