这一章节将通过完善Controller、View、ViewModel,来实现展现层的增删改查。最终实现效果如下图:
一、定义Controller
ABP对ASP.NET MVC Controllers进行了集成,通过引入Abp.Web.Mvc命名空间,创建Controller继承自AbpController, 我们即可使用ABP附加给我们的以下强大功能:
本地化
异常处理
对返回的JsonResult进行包装
审计日志
权限认证([AbpMvcAuthorize]特性)
工作单元(默认未开启,通过添加[UnitOfWork]开启)
1,创建TasksController继承自AbpController
通过构造函数注入对应用服务的依赖。
[AbpMvcAuthorize] public class TasksController : AbpController { private readonly ITaskAppService _taskAppService; private readonly IUserAppService _userAppService; public TasksController(ITaskAppService taskAppService, IUserAppService userAppService) { _taskAppService = taskAppService; _userAppService = userAppService; }}
二、创建列表展示分部视图(_List.cshtml)
在分部视图中,我们通过循环遍历,输出任务清单。
@model IEnumerable<LearningMpaAbp.Tasks.Dtos.TaskDto><div> <ul class="list-group"> @foreach (var task in Model) { <li class="list-group-item"> <div class="btn-group pull-right"> <button type="button" class="btn btn-info" onclick="editTask(@task.Id);">Edit</button> <button type="button" class="btn btn-success" onclick="deleteTask(@task.Id);">Delete</button> </div> <div class="media"> <a class="media-left" href="#"> <i <strong style="color:transparent">本文来源gao@daima#com搞(%代@#码网@</strong>class="fa @task.GetTaskLable() fa-3x"></i> </a> <div class="media-body"> <h4 class="media-heading">@task.Title</h4> <p class="text-info">@task.AssignedPersonName</p> <span class="text-muted">@task.CreationTime.ToString("yyyy-MM-dd HH:mm:ss")</span> </div> </div> </li> } </ul></div>
三,创建新增分部视图(_CreateTask.cshtml)