Je commence tout juste avec C# et ASP.NET et j'ai les questions suivantes. Je travaille avec du code adapté de quelques tutoriels différents en jouant avec Northwind et je suis arrivé jusqu'ici. La liste des catégories acceptables est actuellement codée en dur dans une chaîne, mais je voudrais rechercher le nom de catégorie dans la base de données pour vérifier qu'il existe.Routage ASP.NET - Contrainte d'itinéraire avec recherche de base de données
Il est évident que le but est de faire en sorte que les utilisateurs ne tapez simplement:
www.domain.com/Categories/AnyUrlWillWork et retourner une page valide.
Est-ce que quelqu'un a aussi des conseils sur la manière dont il gère les problèmes de capitalisation, car le routage est sensible à la casse? Par exemple Catégories/boissons devrait transmettre à Catégories/Boissons?
Merci d'avance pour toute assistance, et heureux de rejoindre Stack Overflow.
//Complex contraint class
public class EchoConstraint : IRouteConstraint
{
public readonly string[] ValidMessages = { "Beverages", "Produce", "Confections", "Seafood" };
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
string message = values["CategoryName"] as string;
return ValidMessages.Contains(message);
}
}
//Routes
RouteTable.Routes.MapPageRoute(
"Category Route", // Route name
"Categories/{CategoryName}", // Url pattern
"~/ShowProductsInCategory.aspx", // Physical file
true,
new RouteValueDictionary
{{"CategoryName", "Beverages"}}, //Sets default value if none is provided in URL
new RouteValueDictionary
{{"CategoryName", new EchoConstraint()}}
);
Avez-vous vu ce tutoriel, btw? http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx – synhershko