HTML5技术

【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上(4)

字号+ 作者:H5之家 来源:H5之家 2016-12-23 17:00 我要评论( )

在这个对话框中,我们需要指定刚才创建的模型类( Student )和数据访问上下文类( StudentDbContext ),然后 VS 不仅可以自动创建视图,而且使用 EF 自动创建 CRUD 的全部代码,是不是很酷! 全部功能完成了! 是

在这个对话框中,我们需要指定刚才创建的模型类(Student)和数据访问上下文类(StudentDbContext),然后VS不仅可以自动创建视图,而且使用EF自动创建CRUD的全部代码,是不是很酷!

 

全部功能完成了!

是不是很惊奇,我们甚至没来得及写视图代码,没有配置数据库,没有写CRUD的逻辑代码,VS模板帮我们生成了一切,现在运行一下(Ctrl+F5),并在浏览器中输入/Students

 

表格页面

表格页面对应于Students控制器下的Index操作方法:

public class StudentsController : Controller { private StudentDbContext db = new StudentDbContext(); ActionResult Index() { return View(db.Students.ToList()); } }

 

 

首先,我们看到控制器内部定义了一个私有变量db,并进行初始化。这是数据库操作上下文实例,所有的CRUD操作都讲依赖于这个实例。

 

Index方法中,通过向View方法传递学生列表的方式,把模型数据传递到了视图,在Views/Students/Index.cshtml视图文件中,我们声明了传入模型的类型:

@model IEnumerable

 

 

在视图中,Model属性的类型就确定为强类型IEnumrable<Student>,配合VS提供的智能感知,不仅可以快速编写代码,并且在编译时还检查代码的有效性。

完整的Index.cshtml代码:

@model IEnumerable @{ ViewBag.Title = "Index"; } Index @Html.ActionLink("Create New", "Create") @Html.DisplayNameFor(model => model.Name) @Html.DisplayNameFor(model => model.Gender) @Html.DisplayNameFor(model => model.Major) @Html.DisplayNameFor(model => model.EntranceDate) @foreach (var item in Model) { @Html.DisplayFor(modelItem => item.Name) @Html.DisplayFor(modelItem => item.Gender) @Html.DisplayFor(modelItem => item.Major) @Html.DisplayFor(modelItem => item.EntranceDate) @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | @Html.ActionLink("Details", "Details", new { id=item.ID }) | @Html.ActionLink("Delete", "Delete", new { id=item.ID }) }

 

 

看着很有古老的ASP的感觉吧,不过这里的Model属性是强类型的,因此在foreach循环中,VS明确知道item类型是Student,从而方便代码编写:

 

@Html里面都是MVC提供的辅助方法,用来辅助生成HTML代码:

1.     ActionLink:用来生成超链接,链接到本控制器内的某个操作方法(也可以是其他控制器的方法,有重载函数),可以指定路由参数,通过对象初始化语法来创建,比如new {id=item.ID}

2.     DisplayNameFor:显示模型属性的名称。强类型辅助方法,允许我们使用一个lambda表达式来指定某个模型属性,而不用写字符串。好处不仅有智能感知,编译时检查,而且也方便代码重构,比如我们在更改模型的属性名称时,视图中的相应代码也会改变。

3.     DisplayFor:显示模型属性的值。

新增页面

 

新增页面对应于Students控制器下的Create操作方法:

ActionResult Create() { return View(); }

 

 

对应的视图文件:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 - 路过秋天

    ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    2016-11-20 16:00

  • 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证 - 微软一站式示

    在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    2016-11-20 15:00

  • ASP.NET Core 之 Identity 入门(二) - Savorboard

    ASP.NET Core 之 Identity 入门(二) - Savorboard

    2016-11-16 13:00

  • ASP.NET Core 之 Identity 入门(一) - Savorboard

    ASP.NET Core 之 Identity 入门(一) - Savorboard

    2016-11-07 15:00

网友点评
p