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 工作单元详情 禁用工作单元 无事务工作单元 一个工作单元方法 ...
随机推荐
- AtCoder Regular Contest 075
任意门 C - Bugged 题意:类似装箱问题,但是最后体积总和不能为10的倍数. #include<cstdio> #include<cstring> #include&l ...
- CodeForces839-B. Game of the Rows-水题(贪心)
最近太zz了,老是忘记带脑子... 补的以前的cf,发现脑子不好使... B. Game of the Rows time limit per test 1 second memory limit ...
- 2017ecjtu-summer training # 11 POJ 2492
A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 38280 Accepted: 12452 D ...
- cdn和反向代理
都是用来加速网站访问速度 cdn和反向代理的基本原理都是使用缓存,区别在于cdn部署在网络提供商的机房,使用户在请求网络服务时,可以从距离自己最近的网络提供商机房获取数据:而反向代理则部署在网站的中心 ...
- Vue中的$set的使用
在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新 ...
- 【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统
[Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院 欧浩源 一.引言 2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的 ...
- AMD规范学习笔记
背景 NodeJS的一套比较简洁 Moudles 规范, 使得在服务器端的模块化变得更加简单.很长一段时间,很多公司或者项目都有自己的一套模块化机制, 却未能形成一套统一的标准, NodeJS的Mou ...
- MLlib--保序回归
转载请标明出处http://www.cnblogs.com/haozhengfei/p/24cb3f38b55e5d7516d8059f9f105eb6.html 保序回归 1.线性回归VS保序回归 ...
- 客户端怎么查看SVN的代码库
安装SVN客户端,比如TortoiseSVN,然后将代码库checkout到本地,或者通过客户端的版本库浏览器直接连接SVN服务器查看代码库的目录结构. 如果SVN服务器端安装的时候是和Apache集 ...
- 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理
上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...