我如何在MVC中重载索引

时间:2016-05-04 22:33:00

标签: asp.net asp.net-mvc-3

我的索引页面包含来自数据库的博客。首先,如果我不提供categoryID,那么所有博客都必须进入索引页面。如果我给出类别,那么我想按类别ID显示博客,所以我需要使用索引重载。

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();}

但是当我想显示所有博客时,错误就是这样:

  

当前的行动请求&#39;索引&#39;在控制器类型&#39; HomeController&#39;以下操作方法之间不明确:   类型为SosyalSozluk.Areas.Blog.Controllers.HomeController的System.Web.Mvc.ActionResult Index()   SosyalSozluk.Areas.Blog.Controllers.HomeController类型的System.Web.Mvc.ActionResult索引(Int32)

1 个答案:

答案 0 :(得分:3)

删除第一个方法并更改第二个方法以使参数可选

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
}