题目
1、使用Code First技术创建一个Movie数据模型。
1
2
3
4
5
6
7
8
9
|
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 string Rating { get ; set ; } //电影分级 } |
2、使用MVC相关技术实现数据的列表显示和新增功能。
3、完成数据的编辑、删除、明细和条件查询等功能。
4、完成如下查询:
(1)查询尚未上映电影的信息
(4)查询票价在某个区间的电影信息
效果
(源码在文章结尾)
主要涉及知识点
1、ASP.NET WEB MVC下的目录结构以及基础编程
2、Linq查询操作
3、Code First
4、各模板View的建立和使用
主要代码
MovieController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
using ProjectThree.Models; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; namespace ProjectThree.Controllers { public class MovieController : Controller { MovieDBContext db = new MovieDBContext(); // GET: Movie public ActionResult Index( string movieOn, string movieGenre, string searchString, string lowPrice, string highPrice) { //初始化电影是否上映下拉 var GenreLst1 = new List< string >(); GenreLst1.Add( "是" ); GenreLst1.Add( "否" ); ViewBag.movieOn = new SelectList(GenreLst1); //初始化电影类型下拉 var GenreLst2 = new List< string >(); var GenreQry = from d in db.Movies orderby d.Genre select d.Genre; GenreLst2.AddRange(GenreQry.Distinct()); //去重 ViewBag.movieGenre = new SelectList(GenreLst2); var movies = from m in db.Movies select m; if (!String.IsNullOrEmpty(movieOn)) { DateTime dtNow = DateTime.Now; if (movieOn.Equals( "是" )) { movies = movies.Where(s => DateTime.Compare(dtNow, s.ReleaseDate) > 0); } else if (movieOn.Equals( "否" )) { movies = movies.Where(s => DateTime.Compare(dtNow, s.ReleaseDate) <= 0); } } if (!String.IsNullOrEmpty(movieGenre)) { movies = movies.Where(x => x.Genre == movieGenre); } if (!String.IsNullOrEmpty(searchString)) { movies = movies.Where(s => s.Title.Contains(searchString)); } if ((!String.IsNullOrEmpty(lowPrice)) && (!String.IsNullOrEmpty(highPrice))) { try { Decimal low = Decimal.Parse(lowPrice); Decimal high = Decimal.Parse(highPrice); if (high < low) { Response.Write( "<script>alert('左边价格不可大于右边!');</script>" ); } else { movies = movies.Where(s => s.Price >= low); movies = movies.Where(s => s.Price <= high); } } catch { Response.Write( "<script>alert('必须输入数字!');</script>" ); return View(movies); } } return View(movies); } public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(Movie m) { if (ModelState.IsValid) { db.Movies.Add(m); db.SaveChanges(); return RedirectToAction( "Index" , "Movie" ); } return View(m); } public ActionResult Delete( int ? id) { Movie m = db.Movies.Find(id); if (m != null ) { db.Movies.Remove(m); db.SaveChanges(); } return RedirectToAction( "Index" , "Movie" ); } public ActionResult Edit( int id) { Movie stu = db.Movies.Find(id); return View(stu); } [HttpPost] public ActionResult Edit(Movie stu) { db.Entry(stu).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction( "Index" , "Movie" ); } } } |
Movie.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
using System; using System.ComponentModel.DataAnnotations; namespace ProjectThree.Models { public class Movie { [Display(Name = "电影编号" )] public int ID { get ; set ; } //电影编号 [Display(Name = "电影名称" )] [Required(ErrorMessage = "必填" )] [StringLength(60, MinimumLength = 3, ErrorMessage = "必须是[3,60]个字符" )] public string Title { get ; set ; } //电影名称 [Display(Name = "上映时间" )] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}" ,ApplyFormatInEditMode = true )] public DateTime ReleaseDate { get ; set ; } //上映时间 [Display(Name = "电影类型" )] [Required] public string Genre { get ; set ; } //电影类型 [Display(Name = "电影票价" )] [Range(1, 100)] [DataType(DataType.Currency)] public decimal Price { get ; set ; } //电影票价 [Display(Name = "电影分级" )] [StringLength(5)] [Required] public string Rating { get ; set ; } //电影分级 } } |
MovieDBContext.cs
1
2
3
4
5
6
7
8
|
using System.Data.Entity; namespace ProjectThree.Models { public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get ; set ; } } } |
Index.cshtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
@model IEnumerable<ProjectThree.Models.Movie> @{ ViewBag.Title = "Index" ; } <p> @Html.ActionLink( "新建" , "Create" ) @ using (Html.BeginForm( "Index" , "Movie" , FormMethod.Get)) { <p> 电影是否上映:@Html.DropDownList( "movieOn" , "all" ) 电影类型:@Html.DropDownList( "movieGenre" , "all" ) 电影名称:@Html.TextBox( "SearchString" ) 票价区间:@Html.TextBox( "lowPrice" )~@Html.TextBox( "highPrice" ) <input type= "submit" value= "查询" /> </p> } </p> <table class = "table" > <tr> <th> @Html.DisplayNameFor(model => model.Title) </th> <th> @Html.DisplayNameFor(model => model.ReleaseDate) </th> <th> @Html.DisplayNameFor(model => model.Genre) </th> <th> @Html.DisplayNameFor(model => model.Price) </th> <th> @Html.DisplayNameFor(model => model.Rating) </th> <th></th> </tr> @ foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Title) </td> <td> @Html.DisplayFor(modelItem => item.ReleaseDate) </td> <td> @Html.DisplayFor(modelItem => item.Genre) </td> <td> @Html.DisplayFor(modelItem => item.Price) </td> <td> @Html.DisplayFor(modelItem => item.Rating) </td> <td> @Html.ActionLink( "编辑" , "Edit" , new { id=item.ID }) | @Html.ActionLink( "详情" , "Details" , new { id=item.ID }) | @Html.ActionLink( "删除" , "Delete" , new { id=item.ID }, new { onclick = "return confirm('确认删除吗?')" }) </td> </tr> } </table> |
Create.cshtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
@model ProjectThree.Models.Movie @{ ViewBag.Title = "Create" ; } @ using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class = "form-horizontal" > <h4>Movie</h4> <hr /> @Html.ValidationSummary( true , "" , new { @ class = "text-danger" }) <div class = "form-group" > @Html.LabelFor(model => model.Title, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Title, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.ReleaseDate, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.ReleaseDate, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.ReleaseDate, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Genre, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Genre, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Genre, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Price, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Price, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Price, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Rating, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Rating, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Rating, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > <div class = "col-md-offset-2 col-md-10" > <input type= "submit" value= "Create" class = "btn btn-default" /> </div> </div> </div> } <div> @Html.ActionLink( "Back to List" , "Index" ) </div> |
Edit.cshtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
@model ProjectThree.Models.Movie @{ ViewBag.Title = "Edit" ; } <h2>Edit</h2> @ using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class = "form-horizontal" > <h4>Movie</h4> <hr /> @Html.ValidationSummary( true , "" , new { @ class = "text-danger" }) @Html.HiddenFor(model => model.ID) <div class = "form-group" > @Html.LabelFor(model => model.Title, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Title, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.ReleaseDate, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.ReleaseDate, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.ReleaseDate, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Genre, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Genre, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Genre, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Price, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Price, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Price, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > @Html.LabelFor(model => model.Rating, htmlAttributes: new { @ class = "control-label col-md-2" }) <div class = "col-md-10" > @Html.EditorFor(model => model.Rating, new { htmlAttributes = new { @ class = "form-control" } }) @Html.ValidationMessageFor(model => model.Rating, "" , new { @ class = "text-danger" }) </div> </div> <div class = "form-group" > <div class = "col-md-offset-2 col-md-10" > <input type= "submit" value= "Save" class = "btn btn-default" /> </div> </div> </div> } <div> @Html.ActionLink( "Back to List" , "Index" ) </div> |
源码地址
http://download.csdn.net/detail/double2hao/9710754
以上所述是小编给大家介绍的ASP.NET实现电影票信息的增删查改功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/double2hao/article/details/53634259