我们希望避免出现这种情况
USING ACTIONFILTERS TO REMOVE DUPLICATED CODE
ASP.NET Core 的过滤器可以让我们在请求管道的特定状态之前或之后运行一些代码。因此如果我们的 action 中有反复验证的话,可以使用它来简化验证操纵。
当我们在 action 要领中措置惩罚惩罚 PUT 或者 POST 请求时,我们需要验证我们的模型东西是否切合我们的预期。作为功效,这将导致我们的验证代码反复,我们但愿制止呈现这种情况,(根基上,我们应该尽我们所能制止呈现任何代码反复。)我们可以在代码中通过使用 ActionFilter 来取代我们的验证代码:
if (!ModelState.IsValid) { //bad request and logging logic }
我们可以创建一个过滤器:
public class ModelValidationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { context.Result = new BadRequestObjectResult(context.ModelState); } } }
然后在 Startup 类的 ConfigureServices 函数中将其注入:
services.AddScoped<ModelValidationAttribute>();
此刻,,我们可以将上述注入的过滤器应用到我们的 action 中。
ASP.NET Core 使用过滤器移除反复代码
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31212.html