AspNetCore 路由
1.Http特性
除了使用[Route]特性外,常见的是使用http特性
Http特性 Http方法 URL示例
[HttpGet] Get api/blogs
[HttpPost] Post api/blogs
[HttpPut] Put api/blogs/1
[HttpPatch] Patch api/blogs
[HttpDelete] Delete api/blogs/1
2.重定向
//重定向到指定的URL
Redirect("http://www.baidu.com")
//重定向到当前应用程序的另一个URL
LocalRedirect("account/login")
//重定向到指定的action
RedirectToAction("login")
//重定向到指定的路由
RedirectToRoute("default",new{action="login",controller="account"});
3.返回结果
在ControllerBase类中,对于经常用到的状态码结果都提供了一个相应的方法用以直接返回相应的对象
状态码结果对象 对应的状态码 描述 ControllerBase中的方法
OkResult 200 操作成功 Ok()
BadRequestResult 400 错误的请求 BadRequest()
NotContentResult 204 操作成功,但未返回任何内容 NoCountent()
NotFound 404 请求资源找不到 NotFound()
UnauthorizedResult 401 未授权 Unauthorized()
UnsupportedMediaTypeResult 415 无法处理请求附带的媒体格式 无
4.Mvc返回结果类型
ViewResult 视图
PartialViewResult 部分视图
JsonResult JSON
ContentResult JSON return JSON() 或 return Content()
5. 模型绑定
使用下列特性制定不同的绑定源
[FromHeader] 从Http请求的Header中获取参数的值
[FromQuery] 从查询字符串中获取参数的值 HttpContext.Request["param"]
[FromServices] 从依赖注入容器中获取参数的值
[FromRoute] 从路由中获取参数的值
[FromForm] 从表单中获取该参数的值
[FromBody] 从http请求的消息正文中获取参数的值
另外,还有两个特性用于知名参数是否需要绑定
BindRequiredAttribute:如果没有值绑定到此参数,或绑定不成功,这个特性将添加一个ModelState错误,这也是之前用 AspNet模型绑定用于验证的判断依据
BindNeverAtrribute 进行模型绑定时,忽略此参数
例如
[HttpPost]
public IActionResult Post([FromBody] BlogDto blog,[FromHeader] string clientId)
{
}