2010-02-16 3 views
0

Est-ce une pratique recommandée pour effectuer une recherche de données dans les contraintes d'itinéraire, ou doit-elle être légère?Recherche de données dans les contraintes de route?

Je voudrais avoir une contrainte de route qui déclenche une 404 si un utilisateur tente d'accéder à un produit qui n'existe pas - à savoir:

/en-US/produits/myproductcode

Mais je m préoccupé par les implications de performance, même si la recherche est triviale.

Merci

Répondre

1

Eh bien, il ne semble pas une bonne solution pour moi, même si la performance ne serait pas question bien (vous allez vous connecter à votre base de données dans le contrôleur pour obtenir le produit de toute façon).

Même si un code produit ne existe dans votre DB, cela ne signifie pas l'URL ne correspondance votre itinéraire.

Par exemple, NerdDinner 1.0 gère votre situation comme ceci:

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

est-il une meilleure/plus facile de produire un 404 pour les données manquantes - serait un filtre d'action plus approprié? – Micael

+0

@Micael, j'ai édité la réponse. Consultez l'exemple de code. –

Questions connexes