ABP官方文档翻译 6.1.1 MVC控制器
ASP.NET MVC控制器
介绍
ABP通过Abp.Web.Mvc nuget包集成到了ASP.NET MVC Controllers。你可以像往常一样创建MVC控制器。依赖注入属性可以用于通常的MVC控制器。但是你应该继承AbpController,它提供了一些好处并且能够和ABP更好的集成。
AbpController基类
这是一个继承AbpController的简单控制器:
public class HomeController : AbpController
{
public ActionResult Index()
{
return View();
}
}
本地化
AbpController定义了L方法简化本地化。示例:
public class HomeController : AbpController
{
public HomeController()
{
LocalizationSourceName = "MySourceName";
} public ActionResult Index()
{
var helloWorldText = L("HelloWorld"); return View();
}
}
你需要设置LocalizationSourceName才能使用L方法。可以在你的控制器基类里设置,这样就不用为每一个控制器重复设置了。
其他
你也可以使用预注入的AbpSession,EventBus,PermissionManager,PermissionChecker,SettingManager,FeatureManager,FeatureChecker,LocalizationManager,Logger,CurrentUnitOfWork基础属性等。
过滤器
异常处理和结果包装
所有的异常都是自动处理、记录并给客户端返回一个合适的响应。参见异常处理文档了解更多。
如果返回类型时JsonResult(或异步actions的Task<JsonResult>), ABP会默认包装action的结果。
你可以通过为controllers或actions或从全局的启动配置使用WrapResult和DontWrapResult特性来改变异常处理和包装。
审计日志
AbpMvcAuditFilter用来集成审计日志系统。它默认记录所有actions的所有请求(如果审计没有被禁用)。你可以为actions和controllers使用Audited和DisableAuditing特性来控制审计日志。
验证
AbpMvcValidationFilter自动检查ModelState.IsValid,如果action没通过验证则阻止其执行。输入DTO的验证实现参见校验文档。
授权
你可以给controllers或actions使用AbpMvcAutorize特性来禁止未授权的用户使用你的controllers和actions。示例:
public class HomeController : AbpController
{
[AbpMvcAuthorize("MyPermissionName")]
public ActionResult Index()
{
return View();
}
}
你可以为controllers和actions定义AllowAnonymous特性来废除验证/授权。AbpController定义了IsGranted方法作为检查权限的快捷方法。
参见授权文档了解更多。
工作单元
AbpMvcUowFilter用来集成工作单元系统。它自动在action执行前可以使一个工作单元并在action结束后完成工作单元(如果没有异常抛出)。
你可以使用UnitOfWork特性来控制action的UOW的行为。你也可以使用启动配置来更改所有actions的默认工作单元特性。
防伪造
AbpAntiForgeryMvcFilter用来自动保护MVC actions的POST、PUT和DELETE请求免受CSRF/XSRF的攻击。参见CSRF文档了解更多。
模型绑定器
AbpMvcDateTimeBinder用来格式化DateTime(和Nullable<DateTime>)输入,它使用Clock.Normalize方法。
ABP官方文档翻译 6.1.1 MVC控制器的更多相关文章
- ABP官方文档翻译 6.1.2 MVC视图
ASP.NET MVC 视图 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图.你可以如往常一样创建正常的MVC视图. AbpWebView ...
- ABP官方文档翻译 5.1 Web API控制器
ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 A ...
- ABP官方文档翻译 6.2.1 ASP.NET Core集成
ASP.NET Core 介绍 迁移到ASP.NET Core? 启动模板 配置 启动类 模块配置 控制器 应用服务作为控制器 过滤器 授权过滤器 审计Action过滤器 校验过滤器 工作单元Acti ...
- ABP官方文档翻译 4.4 授权
授权 介绍 关于IPermissionChecker 定义权限 检查权限 使用AbpAuthorize特性 AbpAuthorize特性注意点 抑制授权 使用IPermissionChecker 在R ...
- ABP官方文档翻译 6.3 本地化
本地化 介绍 应用程序语言 本地化源 XML文件 注册XML本地化源 JSON文件 注册JSON本地化源 资源文件 自定义源 当前语言是如何决定的 ASP.NET Core ASP.NET MVC 5 ...
- ABP官方文档翻译 6.1.3 异常处理
处理异常 介绍 启用错误处理 Non-Ajax请求 显示异常 UserFriendlyException Error模型 AJAX请求 异常事件 介绍 此文档是与ASP.NET MVC和Web API ...
- ABP官方文档翻译 4.6 审计日志
审计日志 介绍 关于IAuditingStore 配置 通过特性启用/禁用 注意事项 介绍 维基百科:“审计追踪(也称为审计日志)是与安全相关的按时间先后的记录.记录集合.记录的目的地和源,提供一系列 ...
- ABP官方文档翻译 4.3 校验数据传输对象
校验数据传输对象 校验简介 使用数据标注 自定义校验 禁用校验 标准化 校验简介 应用的输入首先应该被校验.输入可以是用户的也可以是其他应用的.在一个web应用中,校验通常实现两次:客户端和服务端.客 ...
- ABP官方文档翻译 3.6 工作单元
工作单元 介绍 ABP中的连接和事务管理 传统的工作单元方法 控制工作单元 UnitOfWork特性 IUnitOfWorkManager 工作单元详情 禁用工作单元 无事务工作单元 一个工作单元方法 ...
随机推荐
- Educational Codeforces Round 21 D.Array Division(二分)
D. Array Division time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
- 三维dp&codeforce 369_2_C
三维dp&codeforce 369_2_C 标签: dp codeforce 369_2_C 题意: 一排树,初始的时候有的有颜色,有的没有颜色,现在给没有颜色的树染色,给出n课树,用m种燃 ...
- hdu_3068 最长回文(Manacher算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others) M ...
- hbmy周赛1--E
E - Combination Lock Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I6 ...
- DFS算法(——模板习题与总结)
首先,需要说明的是搜索算法本质上也是枚举的一种,时间复杂度还是很高的,遇到问题(特别是有水平的比赛上),不要优先使用搜索算法. 这里总结一下DFS算法: 1.从图中某个顶点出发,访问v. 2.找出刚访 ...
- JavaScript八张思维导图
JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...
- dede list列表页和文章页分别使用if else
标签: dede 2015-01-25 19:33 755人阅读 评论(0) 收藏 举报 分类: [ Dede ](20) 版权声明:本文为博主原创文章,未经博主允许不得转载. list列表页中使用i ...
- dedecms后台系统基本参数标题
1,站点设置 2,核心设置 3,附件设置 4,会员设置 6,性能选项 7,其它选项 8,模块设置 在E:\wamp\www\dededln\back\inc\configgroup.txt
- vue中引入jQuery和bootstrap
一.引入jQuery: 首先在当前项目的根目录下(就是与package.json同目录),运行命令npm install jquery --save-dev 这样就将jquery安装到了这个项目中 ...
- eclipse中git解决冲突
摘录自http://blog.csdn.net/rosten/article/details/17068285 1. 工程->Team->同步 2.从远程pull至本地,就会出现如下内容 ...