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或从全局的启动配置使用WrapResultDontWrapResult特性来改变异常处理和包装。

审计日志

  AbpMvcAuditFilter用来集成审计日志系统。它默认记录所有actions的所有请求(如果审计没有被禁用)。你可以为actions和controllers使用AuditedDisableAuditing特性来控制审计日志。

验证

  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控制器的更多相关文章

  1. ABP官方文档翻译 6.1.2 MVC视图

    ASP.NET MVC 视图 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图.你可以如往常一样创建正常的MVC视图. AbpWebView ...

  2. ABP官方文档翻译 5.1 Web API控制器

    ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 A ...

  3. ABP官方文档翻译 6.2.1 ASP.NET Core集成

    ASP.NET Core 介绍 迁移到ASP.NET Core? 启动模板 配置 启动类 模块配置 控制器 应用服务作为控制器 过滤器 授权过滤器 审计Action过滤器 校验过滤器 工作单元Acti ...

  4. ABP官方文档翻译 4.4 授权

    授权 介绍 关于IPermissionChecker 定义权限 检查权限 使用AbpAuthorize特性 AbpAuthorize特性注意点 抑制授权 使用IPermissionChecker 在R ...

  5. ABP官方文档翻译 6.3 本地化

    本地化 介绍 应用程序语言 本地化源 XML文件 注册XML本地化源 JSON文件 注册JSON本地化源 资源文件 自定义源 当前语言是如何决定的 ASP.NET Core ASP.NET MVC 5 ...

  6. ABP官方文档翻译 6.1.3 异常处理

    处理异常 介绍 启用错误处理 Non-Ajax请求 显示异常 UserFriendlyException Error模型 AJAX请求 异常事件 介绍 此文档是与ASP.NET MVC和Web API ...

  7. ABP官方文档翻译 4.6 审计日志

    审计日志 介绍 关于IAuditingStore 配置 通过特性启用/禁用 注意事项 介绍 维基百科:“审计追踪(也称为审计日志)是与安全相关的按时间先后的记录.记录集合.记录的目的地和源,提供一系列 ...

  8. ABP官方文档翻译 4.3 校验数据传输对象

    校验数据传输对象 校验简介 使用数据标注 自定义校验 禁用校验 标准化 校验简介 应用的输入首先应该被校验.输入可以是用户的也可以是其他应用的.在一个web应用中,校验通常实现两次:客户端和服务端.客 ...

  9. ABP官方文档翻译 3.6 工作单元

    工作单元 介绍 ABP中的连接和事务管理 传统的工作单元方法 控制工作单元 UnitOfWork特性 IUnitOfWorkManager 工作单元详情 禁用工作单元 无事务工作单元 一个工作单元方法 ...

随机推荐

  1. 常用OJ名字+地址(自用)

    常用OJ名字+地址 不定期更新,自己用,有补充的也可以给我说说哈. 中文 openjudge 地址:openjudge.cn 说明:北大提供的一个平台,学校可申请小组: 比较好的小组: 计算概论:ic ...

  2. Equals()和GetHashCode()方法深入了解

    最近在看Jeffrey Richter的CLR Via C#,在看到GetHashCode()方法的时候,有一个地方不是特别明白,就是重写Equals()方法时为什么要把GetHashCode()方法 ...

  3. js实现深拷贝和浅拷贝

    浅拷贝: 思路----------把父对象的属性,全部拷贝给子对象,实现继承. 问题---------如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,不会开辟新栈,不是 ...

  4. Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config解决

    出现这个问题往往伴随  HTTP-500错误 报错信息: HTTP Status - Handler processing failed; nested exception is java.lang. ...

  5. Python scrapy------分类获取美团整站数据

    欢迎联系讨论:qq:1170370113 以下是我们获取美团页面的城市信息 获取到了城市信息以后我们可以进行分类保存,以便于后续能够分类获取数据 获取我们需要城市的景区的所有相关id并且进行保存 最后 ...

  6. Oracle_索引

    Oracle_索引 索引类似字典的和课本目录,是为了加快对数据的搜索速度而设立的.索引有自己专门的存储空间,与表独立存放. 索引的作用:在数据库中用来加速对表的查询,通过使用快速路径访问方法快速定位数 ...

  7. git常见操作

    本地仓库关联远程仓库 新建本地目录scala git init 这样就新建了一个本地仓库 在远端如github上新建仓库scala 关联远程仓库 git remote add origin git@g ...

  8. Python3 的函数

    1.编写power(x,y)函数返回x的y次幂值 def power(x,y): return x**y 2.求最大公约数 def gcd(x,y): r=x%y x=y y=r if r==0: p ...

  9. addTarget:self 的意思是说,这个方法在本类中

    addTarget:self 的意思是说,这个方法在本类中也可以传入其他类的指针*/

  10. [ios 开发笔记]:一句话笔记

    1.NSString转int int a=[@"123" intValue]; 同样适用于NSDictionary将NSNumber转为int   2.switch(stateme ...