ASP.NET Core Binding source

举报
Echo_Wish 发表于 2022/08/17 09:10:11 2022/08/17
【摘要】 Binding source Attributes借助 binding source attributes 可以将请求传递的数据传递给 api,详细的attribute 如下图。但 在 api 项目下的 标识了 apicontroller 的controller下,binding source attributes 的规则 有所改变 HttpHEADhead 也是一种http 请求方法,他...

Binding source Attributes

借助 binding source attributes 可以将请求传递的数据传递给 api,详细的attribute 如下图。
在这里插入图片描述

但 在 api 项目下的 标识了 apicontroller 的controller下,binding source attributes 的规则 有所改变
在这里插入图片描述

HttpHEAD

head 也是一种http 请求方法,他跟 get 方法非常相似。重要的不同在于 head 方法不会返回 body ,只有响应头信息。
head 可以用来在资源上获取一些信息。
asp.net core 提供了HTTP attribute HttpHead 使用,非常方便。

过滤 和 搜索

过滤:首先是一个完整的集合,然后根据条件把匹配/不匹配的数据项移除。
搜索:首先是一个空的集合,然后根据条件把匹配/不匹配的数据项往里面添加。

注意过滤 的字段 只能对 对外暴露的DTO 类的字段值进行过滤。

asp.net core 异常处理

开发模式下,程序出现未想到的异常,通过异常处理返回给用户具有提示性的信息,而不是直接返回异常信息,安全性存在隐患。

是 startup类的configure 方法进行配置。

if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {	
                // 使用useexceptionhandler 中间价来简单处理异常
                app.UseExceptionHandler(appBuilder => 
                {
                    appBuilder.Run(async context =>
                    {
                        context.Response.StatusCode = 500;
                        await context.Response.Body.WriteAsync(System.Text.Encoding.Default.GetBytes("Unexpected Error"));
                    });
                });
            }

http 安全性和幂等性

在这里插入图片描述

HTTP 各个方法的详解
在这里插入图片描述

根据 http 方法的安全性和幂等性的了解,在各种业务场景下使用什么方法可以提供参照。

传递复杂 Action 参数

当Action 需要的参数较多时,通过形参直接传递,会导致代码非常冗余,因此需要使用 模型类 来接受复杂参数,处理复杂参数的传递。
首先需要声明 模型类 ,就是基本的简单的普通 c# 类

    public class CompanyDtoParameters
    {
        public String CompanyName { get; set; }

        public String SearchTerm { get; set; }
    }

注意属性的名称就是请求传递的数据的键名。

然后在 service 类中使用 和 controller 中使用

在这里插入图片描述

在这里插入图片描述

注意 controller 中 需要指定 模型绑定的数据源。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。