2010-06-25 7 views
2

J'ai problème avec ActionResult Overload dans MVC2à une surcharge ActionResult dans Asp.Net MVC2

J'ai 3 méthodes

public ActionResult MyMethod() 
{ 
    var data = ........ 
    //some unfiltered data from db 
    return view(data); 
} 

public ActionResult MyMethod(string name) 
{ 
    var data = ....... 
       Where xxx.StartsWith(name) 
    //some filtered data by name 
    return View(data); 
} 

public ActionResult MyMethod(int age) 
{ 
    var data = ....... 
       Where xxx.Equals(age) 
    //some filtered data by age 
    return View(data); 
} 

Comment puis-je surcharger les méthodes dans Asp.Net MVC2? Merci.

Répondre

2

Réponse courte, vous ne pouvez pas surcharger les méthodes uniquement par des variables.

Discussion on Stack

Si vous devez avoir les mêmes noms de méthode, vous devez créer un attribut ActionFilter et l'utiliser comme la surcharge.

Snippet de discussion ci-dessus:

[RequireRequestValue("someInt")] 
public ActionResult MyMethod(int someInt) { /* ... */ } 

[RequireRequestValue("someString")] 
public ActionResult MyMethod(string someString) { /* ... */ } 
+3

dans lequel l'espace de noms est [RequireRequestValue()] –

+0

Vous devez créer l'action vous filtrer et appeler ce que vous voulez. Re-lire la question que j'ai posté à et regarder @ comment il a résolu son dilemme. – Tommy

+0

Mon mistke. Maintenant, il fonctionne. Merci. –