首先打开Movie控制器,添加一个返回数据修改视图的Edit()方法与一个对该视图中的表单提交进行处理的Edit()方法,代码如下所示:

 1 // GET: /Movies/Edit 
 2 public ActionResult Edit(int id)
 3 {
 4         Movie movie = db.Movies.Find(id);
 5         if (movie == null)
 6             return RedirectToAction("Index");
 7  
 8         return View(movie);
 9 }
10 // 
11 // POST: /Movies/Edit 
12 [HttpPost]
13 public ActionResult Edit(Movie model)
14 {
15         try
16         {
17             var movie = db.Movies.Find(model.ID);
18  
19             UpdateModel(movie);
20             db.SaveChanges();
21             return RedirectToAction("Details", new { id = model.ID });
22         }
23         catch (Exception)
24         {
25             ModelState.AddModelError("", "修改失败,请查看详细错误信息。");
26         }
27  
28         return View(model);
29 }

 

这两个Edit方法中,第一个方法将在用户点击外部画面的编辑链接时被调用,用来在浏览器中显示数据修改视图,并且在该视图中显示用户选择编辑的数据。第二个Edit方法前面带有一个[HttpPost]标记,负责将修改数据视图中提交的表单数据绑定到一个用模型创建出来的Movie对象实例之上(当用户在表单中完成数据修改并点击保存按钮的时候进行提交),UpdateModel(movie)方法将调用模型拷贝器,该模型拷贝器将修改后的数据(使用model参数,该参数指向一个各属性值为编辑后数据的Movie对象实例)拷贝到数据库中(即为数据的保存过程)。在保存数据的过程中如果发生任何错误而导致保存失败的话,则画面重新返回到数据修改视图。接下来让我们来追加该数据修改视图、在Edit方法中点击鼠标右键,选择添加视图,依然勾选创建强类型视图,模型类选择Movie,在支架模板中选择“Edit”(修改数据),如图所示:

MVC神韵---你想在哪解脱!(十八)

如果要创建中文网站或应用程序,则将默认生成的Edit.cshtml文件中有关英文文字修改为中文,修改完毕后

该文件中的代码如下所示:

 

 1 @model MvcMovie.Models.Movie
 2 @{
 3     ViewBag.Title = "修改电影信息";
 4 }
 5 <h2>修改电影信息</h2>
 6 <script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
 7 type="text/javascript"></script>
 8 <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
 9 type="text/javascript"></script>
10 @using (Html.BeginForm()) {
11     @Html.ValidationSummary(true)
12     <fieldset>
13         <legend>电影</legend>
14  
15         @Html.HiddenFor(model => model.ID)
16  
17         <div class="editor-label">
18             标题
19         </div>
20         <div class="editor-field">
21             @Html.EditorFor(model => model.Title)
22             @Html.ValidationMessageFor(model => model.Title)
23         </div>
24  
25         <div class="editor-label">
26             发行日期
27         </div>
28         <div class="editor-field">
29             @Html.EditorFor(model => model.ReleaseDate)
30             @Html.ValidationMessageFor(model => model.ReleaseDate)
31         </div>
32  
33         <div class="editor-label">
34             种类
35         </div>
36         <div class="editor-field">
37             @Html.EditorFor(model => model.Genre)
38             @Html.ValidationMessageFor(model => model.Genre)
39         </div>
40  
41         <div class="editor-label">
42             票价
43         </div>
44         <div class="editor-field">
45             @Html.EditorFor(model => model.Price)
46             @Html.ValidationMessageFor(model => model.Price)
47         </div>
48  
49         <div class="editor-label">
50             电影等级
51         </div>
52         <div class="editor-field">
53             @Html.EditorFor(model => model.Rating)
54             @Html.ValidationMessageFor(model => model.Rating)
55         </div>
56  
57         <p>
58             <input type="submit" value="保存" />
59         </p>
60     </fieldset>
61 }
62 <div>
63     @Html.ActionLink("返回电影清单", "Index")
64 </div>
View Code

相关文章:

  • 2021-05-21
  • 2021-12-02
  • 2022-02-25
  • 2022-02-21
  • 2021-12-26
  • 2021-11-19
  • 2021-09-04
  • 2021-06-10
猜你喜欢
  • 2021-06-06
  • 2021-06-27
  • 2021-10-13
  • 2021-12-29
  • 2021-07-06
  • 2021-07-15
  • 2021-11-17
相关资源
相似解决方案