2016-05-04 3 views
1

überladen Ich habe Index Seite, die Blogs aus der Datenbank enthalten ist. Erstens, wenn ich die categoryID nicht gebe, müssen alle Blogs zur Indexseite kommen. Wenn ich die Kategorie gebe, dann möchte ich Blogs nach categoryID anzeigen, also muss ich die Indexüberladung verwenden.Wie kann ich Index in MVC

public ActionResult Index(){List<Blog> blogs = db.Blogs.ToList();} 
public ActionResult Index(int ID){List<Blog> blogs = db.Blogs.Where(x=>x.CategoryID==ID).ToList();} 

Aber wenn ich angezeigt werden sollen alle Blogs den Fehler wie diese kommen:

Die aktuelle Handlungsaufforderung ‚Index‘ auf Controller-Typ ‚Homecontroller‘ zwischen den folgenden Aktionsmethoden nicht eindeutig ist: System.Web.Mvc.ActionResult Index() auf Typen SosyalSozluk.Areas.Blog.Controllers.HomeController System.Web.Mvc.ActionResult Index (Int32) auf Typen SosyalSozluk.Areas.Blog.Controllers.HomeController

Antwort

3

Löschen Sie die erste Methode und ändern Sie die zweite Methode, um den Parameter optional

public ActionResult Index(int? ID) 
{ 
    IEnumerable<Blog> blogs = db.Blogs; 
    if (ID.HasValue) 
    { 
     blogs = blogs .Where(x=>x.CategoryID == ID.Value); 
    } 
    return View(model); // add `.ToList()` if you really need it 
} 
zu machen
Verwandte Themen