我下面的http://www.asp.net/mvc/overview/getting-started/introduction/getting-started使用了相同的屬性,在MVC .NET過濾數據
本教程中的ASP.NET MVC 5教程多個複選框創建包含電影目標基本數據庫,該數據庫的屬性名稱,發行日期,流派和價格。
我有兩個複選框,一個電影誰的價格是5,和一個10
我有什麼優秀作品如果只選擇其中一個複選框,但如果兩者都選擇了(我想列出價格爲5的電影和價格爲10的電影),則視圖中不顯示任何內容。
我會離開嗎?
型號:
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
控制器:
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
public ActionResult Index(bool movieCost5 = false, bool movieCost10 = false)
{
var movies = from m in db.Movies
select m;
if (movieCost5 == true && movieCost10 == false)
{
movies = movies.Where(x => x.Price == 5);
}
else if (movieCost5 == true && movieCost10 == true)
{
movies = movies.Where(x => x.Price == 5 && x.Price == 10);
}
else if (movieCost5 == false && movieCost10 == true)
{
movies = movies.Where(x => x.Price == 10);
}
return View(movies);
}
}
除了下面的答案,你也應該投你'movies'變量作爲' IQueryable'可以延遲執行數據庫調用,直到您評估過濾器。現在,代碼是說:「獲取數據庫中的所有影片並將其存儲在內存中」,然後「從匹配標準X的內存中對象獲取每部影片」。這在小數據集上不會顯而易見,但隨着它們變大,您會注意到您的代碼正在拖動。 –
2014-12-02 16:37:33
謝謝,我會放棄它。 – User00000034 2014-12-05 12:15:47