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 @   丹心石  阅读(121)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示