【发布时间】:2017-02-19 23:26:17
【问题描述】:
我正在尝试使用 MVC 5 进行搜索,我得到了逻辑,但我需要的是拥有返回 3 个不同列表对象的方法
我在 MVC 5 中有视图模型
public class SearchViewModel
{
public List<Article> ArticleSearch { get; set; }
public List<Albums> AlbumsSearch { get; set; }
public List<Blog> BlogSearch { get; set; }
public List<PDFModel> PDFSearch { get; set; }
}
在我的控制器中:
public ActionResult Index()
{
using (DBContext db = new DBContext())
{
string xyz = "f";
var Search = new SearchViewModel()
{
AlbumsSearch = helper.Search(db.Albums, xyz) <!-- Here i get error -->
};
return View(Search);
}
}
helper.Search:
public static IList Search(object obj,string SearchString)
{
using (DBContext db = new DBContext())
{
if (obj is Albums)
{
var AlbumSearch = db.Albums.Where(x => x.AlbumName.Contains(SearchString) ||
x.AlbbumSmallDesc.Contains(SearchString) || x.AlbumNameEnglish.Contains(SearchString)||
x.AlbbumSmallDescEnglish.Contains(SearchString)).ToList();
return AlbumSearch as List<Albums>;
}
else if(obj is Article)
{
var ArticleSearch = db.Article.Where(x => x.ArticleSubject.Contains(SearchString)||x.ArticleSubjectEnglish.Contains(SearchString)||
x.ArticleMessage.Contains(SearchString)||x.ArticleMessageEnglish.Contains(SearchString)).ToList();
return ArticleSearch;
}
else
{
return null;
}
}
}
我想做一个返回列表的方法来进行搜索
我得到这个错误:
无法将类型“System.Collections.IList”隐式转换为“System.Collections.Generic.List
”。存在显式转换(您是否缺少演员表?)
【问题讨论】:
-
你很可能混合了泛型和非泛型集合
-
AlbumsSearch = helper.Search(db.Albums, xyz).ToList() -
我试过 `AlbumsSearch = helper.Search(db.Albums, xyz).ToList() 但我在智能感知中找不到 tolist 的乐趣
-
如果你想要一个方法来操作各种类型的集合,你应该使用泛型。
标签: c# asp.net-mvc asp.net-mvc-5 viewmodel