MVC 控制器

介绍

ASP.NET Boilerplate通过Abp.Web.Mvc NuGet包集成到ASP.NET MVC控制器中。您可以像往常一样创建常规MVC控制器。 依赖注入  适用于常规MVC控制器,但您应该从AbpController派生控制器,它提供了多种好处,并提供了更好的集成到ASP.NET Boilerplate中。

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(或者用于异步操作的Task <JsonResult>),ASP.NET Boilerplate也会默认包装操作结果。

您可以使用控制器或操作的WrapResult和DontWrapResult属性或 全局启动配置(使用Configuration.Modules.AbpMvc()...)来更改异常处理和换行  有关 更多信息,请参阅  ajax文档

审计记录

AbpMvcAuditFilter用于集成到  审计日志记录系统默认情况下,它会将所有请求记录到所有操作(如果未禁用审核)。您可以使用操作和控制器的Audited和DisableAuditingattributes控制审核日志记录。

验证

AbpMvcValidationFilter会自动检查ModelState.IsValid并阻止执行操作(如果它无效)。它还实现了授权中描述的输入DTO验证 

您可以对控制器或操作使用AbpMvcAuthorize属性,以防止未经授权的用户使用您的控制器和操作。例:

public class HomeController : AbpController
{
    [AbpMvcAuthorize("MyPermissionName")]
    public ActionResult Index()
    {
        return View();
    }
}

您可以为操作或控制器定义AllowAnonymous属性以禁止身份验证/授权。AbpController还将IsGranted方法定义为检查权限的快捷方式。

有关 详细信息,请参阅  授权文档。

工作单位

AbpMvcUowFilter用于集成到  工作单元  系统。它在操作执行之前自动开始一个新的工作单元,如果没有抛出异常,则在执行操作后完成工作单元。

您可以使用UnitOfWork属性来控制操作的UOW行为。您还可以使用启动配置更改所有操作的默认工作单元属性。

防伪

AbpAntiForgeryMvcFilter用于自动保护来自CSRF / XSRF攻击的POST,PUT和DELETE请求的MVC操作。有关 更多信息,请参阅  CSRF文档

模型粘合剂

AbpMvcDateTimeBinder用于使用Clock.Normalize方法规范化DateTime(和Nullable <DateTime>)输入。

nidie.com.cn - 用心与你沟通