Question

Je suis en train de comprendre comment définir une condition routeValue qui est facultative.

Je

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex) }) %>

Si un visiteur clique sur une « catégorie » Je montre que des produits de cette catégorie, mais s'il n'y a pas de « catégorie » je montre tous les produits.

Ces 2 URL seraient valides:

/ Produits / page

/ Produits / Page? Category = voitures

Le RouteLink est dans mon téléavertisseur je pensais que je pouvais passer en quelque sorte le paramètre de la catégorie dans les liens du pager afin de persister la catégorie entre les pages. Cependant, je ne sais pas comment je gérer le cas où aucune catégorie est choisie en fonction lorsqu'une catégorie est choisie.

Je sais que je peux faire ceci:

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=cars }) %>

Mais est-il possible de gérer les deux cas sans créer une maladroite instruction if?

Était-ce utile?

La solution

Il est simplement une idée mais ne peut pas vous passer juste un paramètre de catégorie vide?

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=(ViewData["CategoryName"]) }) %>

Et dans votre ProduitsController où vous obtenez la page, il suffit de vérifier si elle existe ou non?

public ActionResult Index(int page, string category)
{
    ViewData["CategoryName"] = category;

    if(!string.IsNullOrEmpty(category)){
        //paging with category
    }else{
        //paging without category
    }
    return View("Create");
}

Ou est-ce que vous entendez par « maladroite instruction if »?

Autres conseils

Si voitures variables est une chaîne nulle ou vide, la méthode Html.RouteLink ne sera pas ajouter catégorie paramètre URL automatiquement. Vous n'avez pas besoin de faire des vérifications supplémentaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top