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)

{

}

 

posted @ 2020-12-12 07:56  丹心石  阅读(118)  评论(0编辑  收藏  举报