ASP.NET ZERO 学习 —— (13) 应用开发Demo之页面呈现Person数据
来源:互联网 发布:mikumikudance软件 编辑:程序博客网 时间:2024/05/19 13:46
使用 MVC Controller调用 GETPEOPLE 方法
现在是时候使用PhoneBookController 来获取People数据并显示在视图上了。
public class PhoneBookController : AbpZeroTemplateControllerBase { private readonly IPersonAppService _personAppService; public PhoneBookController(IPersonAppService personAppService) { this._personAppService = personAppService; } // GET: Mpa/PhoneBook public ActionResult Index(GetPeopleInput input) { var output = this._personAppService.GetPeople(input); var model = new IndexViewModel(output); return View(model); } }
我们注入了IPersonAppService 并调用GetPeople方法来获取Person列表。然后我们创建一个ViewModel对象并传递至视图层。下面是IndexViewModel类
[AutoMapFrom(typeof(ListResultDto<PersonListDto>))] public class IndexViewModel : ListResultDto<PersonListDto> { public IndexViewModel(ListResultDto<PersonListDto> output) { output.MapTo(this); } }
这里,我们扩展了PersonAppService.GetPeople 方法的输出。通过构造函数获取输出并映射这个对象。我们如要使用映射,需要添加AutoMapFrom属性。
应用服务和ViewModels
我们创建应用服务(PersonAppService)并通过Controller来使用它。相对的,我们也可以通过Controller直接调用Repository,完全不使用应用服务。ASP.NET Zero在这里没有对架构做任何强制性要求,我们在SPA和MPA都使用了应用层(应用服务和DTOs)。因此,我们独立于ASP.NET MVC进行了实现,这使得应用层可以重复适用于不同的展示层。但是,如果你只会开发ASP.NET MVC,你可以在Controller里实现应用逻辑和访问Repository,这可能会简化你的架构和开发模式。
在MVC View中呈现 People
我们在页面上展示People是最基本的表单。见下面代码:
@using MyCompanyName.AbpZeroTemplate.Web.Navigation@model MyCompanyName.AbpZeroTemplate.Web.Areas.Mpa.Models.PhoneBook.IndexViewModel@{ ViewBag.CurrentPageName = PageNames.App.Tenant.PhoneBook;}<div class="row margin-bottom-5"> <div class="col-xs-12"> <div class="page-head"> <div class="page-title"> <h1> <span>@L("PhoneBook")</span> </h1> </div> </div> </div></div><div class="portlet light"> <div class="portlet-body"> <h3>@L("AllPeople")</h3> <div class="list-group"> @foreach (var person in Model.Items) { <a href="javascript:;" class="list-group-item"> <h4 class="list-group-item-heading"> @person.Name @person.Surname </h4> <p class="list-group-item-text"> @person.EmailAddress </p> </a> } </div> </div></div>
我们定义的@model 并使用了foreach循环来显示people,结果如下:
我们成功的将数据库中的数据显示在了页面上。
关于显示表格数据
我们通常使用基于table/grid javascript的库来显示表格数据,而不是手动渲染这样的数据。例如,在ASP.NET Zero里我们使用JTable在用户页面上显示用户数据。使用这样的组件,因为它们更简单并且提供了更好的用户体验。
- ASP.NET ZERO 学习 —— (13) 应用开发Demo之页面呈现Person数据
- ASP.NET ZERO 学习 —— (9) 应用开发Demo之工程创建
- ASP.NET ZERO 学习 —— (10) 应用开发Demo之创建实体对象
- ASP.NET ZERO 学习 —— (11) 应用开发Demo之创建应用服务
- ASP.NET ZERO 学习 —— (12) 应用开发Demo之测试应用服务
- ASP.NET ZERO 学习 —— (14) 应用开发Demo之新建People
- ASP.NET ZERO 学习 —— (15) 应用开发Demo之授权
- ASP.NET ZERO 学习 —— (16) 应用开发Demo之删除用户
- ASP.NET ZERO 学习 —— (17) 应用开发Demo之筛选
- ASP.NET ZERO 学习 —— (18) 应用开发Demo之扩展电话信息
- ASP.NET ZERO 学习 —— (5) 开发手册之ANGULAR后台单页面应用
- ASP.NET ZERO 学习 —— (6) 开发手册之MVC后台多页面应用及迁移控制台程序
- ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
- ASP.NET ZERO 学习 —— (4) 开发手册之AccountController
- ASP.NET ZERO 学习 —— (7) 开发手册之基础架构
- ASP.NET ZERO 学习 —— (8) 开发手册之基于令牌的身份认证&其他
- ASP.NET ZERO 学习 —— (1) 介绍
- ASP.NET ZERO 学习 —— (2) 开始
- Windows驱动开发:2 调试环境搭建
- 1005. Spell It Right (20) 数字之和转英文输出
- springboot集成log4j(完成错误信息邮件发送)
- HZNU Training 3—M
- 使用StarUML 画类图
- ASP.NET ZERO 学习 —— (13) 应用开发Demo之页面呈现Person数据
- Unity3D 如何复制内容到剪切板
- 详解post和get请求
- bootstrap去掉表格边框
- 游动的鱼AS3
- Win7 在C盘上复制粘贴文件的时候,提示错误0x80070522:客户端没有所需的特权
- 数值的整数次方
- 微软caffe+mnist训练及预测
- XGBoost:参数解释