WebApi 返回类型
- 自定类型
简单或复杂数据结构;
- IActionResult
返回指定Http状态码;
- Ok()
- NotFound()
-ActionResult
可同时返回状态码及对象。
返回值为ActionResult< ItemClass>
简单或复杂数据结构;
返回指定Http状态码;
-ActionResult
可同时返回状态码及对象。
返回值为ActionResult< ItemClass>
Post传递数据:
Axios 在RequestPayload中传递Json格式;
Ajax 在QueryStringParameter(Form表单)中传递键值对;
.Net Core 3.1之前,需要手动在方法参数前添加参数才能实现RequestPayload反序列化。
特性 | 绑定源 |
---|---|
FromBody | 请求正文 |
FromForm | 表单数据 |
FromHeader | 请求标头 |
FromQuery | 请求查询字符串参数 |
FromRoute | 当前请求路由数据 |
FromServices | 作为操作参数插入的请求服务 |
后被[ApiController]特性完成。
若使用method(Type Parameter1, Type p2 );
则会获取 Request 中 Query String Parameter数据(Form表单),若需要获取Data内容应该创建model 并 method(modelClass model),则会json 反序列化Request Payload 成对象(这个转换在[Apicontroller]特性中完成)。
注册服务:
builder.Services.AddCors(options =>
{
options.AddPolicy
(
name:"Cors",
builder =>
{
builder.WithOrigins("*", "*", "*")
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
}
);
});
启用服务:
app.UseCors("Cors");
builder.Services.AddCors(c=>c.AddPolicy("any",p=>p.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()));
app.UseCors();
controller添加特性[EnableCors("any")]