1

Bonjour, je viens de commencer à apprendre mvc2 et j'ai un problème avec la valeur par défaut pour la page de paramètres (vous pouvez voir la méthode ci-dessous).La valeur par défaut pour le paramètre dans la méthode du contrôleur surcharge tout

C'est toujours 0 indépendamment de ce que je tape dans l'URL. Par exemple, ce

h.ttp: // localhost: 52634/Produits/Liste/2

devraient afficher la page 2, mais en mode débogage le paramètre de page est 0, donc im toujours obtenir la première page du liste à mon avis. J'utilise les routes standard prédéfinies dans asax global lorsque vous démarrez un nouveau projet mvc2.

ai-je oublié quelque chose?

//This is the ProductsController 

    public ViewResult List(int page = 0) 
    { 

     var products = productsRepo.Products() 

    //send in source, current page and page size 
     productList = new PagedList<Product>(products, page, 10); 

     return View(productList); 
    } 

Répondre

2

Il s'agit d'un problème de routage, la route par défaut spécifie une propriété id, vous utilisez une propriété appelée page. Je suis nouveau à MVC moi-même, mais ajouter cette route avant la route par défaut:

routes.MapRoute("MyRoute", "{controller}/{action}/{page}", 
    new { controller = "Foo", action = "List", page = UrlParameter.Optional }); 
+0

omg im un tel doof, je regardais juste le routage dans mon global.asax pas même payer l'avis à la {id}: P Merci pour votre réponse: D – Kimpo

+0

@Kimpo - Pas de problème! – GenericTypeTea

2

Retirez le "= 0", et faire:

public ViewResult List(int? page) 
{ 
    int val = page.GetValueOrDefault(0); 

Et utiliser val partout au lieu de la page. Cela devrait fonctionner. Sinon, c'est un problème avec le routage.

HTH.

+0

Seeing GetValueOrDefault() en action a été utile. – RacerNerd