asp.net core练手小项目(02) - controller 传递数据到 view

在这里插入图片描述

本篇介绍数据如何从 controller 传递到 view。总体来说,数据从 controller 传递到 view,分为两类:第一类是使用 asp.net core 框架定义的 ViewData 或者 ViewBag 传递数据,第二类是基于对象的强类型传递。我们从第二类强类型的数据传递开始。

完成本篇的代码后,程序效果如下。默认显示学生的清单:


点击查看按钮后,跳转到学生详情页面:


首先编写 StudentController 的代码:

默认的 Index 视图,在 index.cshtml 页面显示。我们注意到 View() 方法的参数为 students,students 是一个对象,传递到 view 中。Index.cshtml 使用 @model 指令声明在页面中可以访问控制器中的模型 (model)。然后在页面中使用 Model 属性就表示所参照的对象,能访问到对象的内容。

下面是 Index.cshtml 的代码:


因为 students 是 IEnumerable<> 类型,在页面中可以用 foreach 进行遍历。下面我们再来看 Detail() 方法,传递给 view 的是一个 student,在页面中使用下面的方法来接收数据:


在上面的两个页面中,标题是在页面中硬编码的,这些数据可以从 controller 中使用 ViewData 或者 ViewBag 传递过来。ViewData 是一个字典,使用方法为:

在 controller 中:

在 view 中:

ViewBag 是对 ViewData 的进一步封装,是动态类型的属性。在 Controller 中:


在 view 中:

源码

本系列博文的源码托管在 gitee aspnetcore-studentmanagement,为了记录完整的编写过程,重要的步骤通过 tag 进行标记,本次代码 tag 为 v0.02。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值