在本部分中,你将检查电影控制器的生成的 Edit
操作方法和视图。 但首先我们要 diversion,使发布日期看起来更好。 打开 Models\Movie.cs 文件,并添加以下突出显示的行:
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
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; }
}
}
你还可以将日期区域性指定为以下形式:
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
我们将在下一教程中介绍 DataAnnotations。 Display 特性指定要显示的字段名称的内容(本例中应为“Release Date”,而不是“ReleaseDate”)。 DataType特性指定数据的类型,在本例中为日期,因此不显示存储在字段中的时间信息。 Chrome 浏览器中的 bug 所需的 DisplayFormat 属性不正确地呈现日期格式。
运行应用程序并浏览到 Movies
控制器。 将鼠标指针停留在 编辑 链接上可查看它所链接到的 URL。
编辑链接由 Html.ActionLink
Views\Movies\Index.cshtml视图中的方法生成:
@Html.ActionLink("Edit", "Edit", new { id=item.ID })
Html
对象是一个使用WebViewPage基类上的属性公开的帮助器。 ActionLink
利用帮助器的方法,可以轻松地动态生成链接到控制器操作方法的 HTML 超链接。 方法的第一个参数 ActionLink
是要呈现的链接文本 (例如 <a>Edit Me</a>
) 。 第二个参数是要调用的操作方法的名称,在此示例中 (Edit
) 操作。 最后一个自变量是在此示例中生成路由数据 (的 匿名对象 ,ID 为 4) 。
上图中显示的生成链接是 http://localhost:1234/Movies/Edit/4
。 在 应用 _ Start\RouteConfig.cs 中建立的默认路由 () 采用 URL 模式 {controller}/{action}/{id}
。 因此,ASP.NET 将转换为 http://localhost:1234/Movies/Edit/4
Edit
控制器操作方法的请求,该方法的 Movies
参数 ID
等于4。 从 应用程序 _ Start\RouteConfig.cs 文件中检查以下代码。