首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《ASP.ENT Core 与 RESTful API 开发实战》-- (第4章)-- 读书笔记(下)

第 4 章 资源操作 4.5 创建资源 由于创建资源的 Id 会在服务端生成,因此在创建资源时,不建议使用与获取数据时相同的 DTO,而要单独创建一个新的 DTO 类,并通过数据注解特性对相应 的属性做限制...authorDto); // 返回201 Created 状态码,并在响应消息头中包含 Location 项,它的值是新创建资源的 URL // 第一个参数是要调用 Action 的路由名称...value:对象的值 op 的值包括以下6种: add remove replace copy move test 因此以下内容会更新图书资源的 Title 属性,并清空 Description 属性...中,对于不支持的 Accept 类型返回 406 NotAcceptable 这一配置项默认为 false,因此它会返回默认格式,可以在 ConfigureService 方法中添加 MVC 服务时配置...Formatter 是 ASP.NET Core 中用于处理数据输出或输入格式的组件,它分为两类:输出 Formatter 和输入 Formatter 前者满足 HTTP 请求消息头的 Accept 项,后者匹配

57020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(下)

    AuthorDto>(author); // 返回201 Created 状态码,并在响应消息头中包含 Location 项,它的值是新创建资源的 URL // 第一个参数是要调用 Action 的路由名称...nameof(GetAuthorsAsync), new { authorId = authorCreated.Id }, authorCreated); } 当数据发生变化时,EF Core 会将实体对象的属性及其状态修改...base.OnActionExecutionAsync(context, next); } } } 如果检查结果不存在,则结束本次请求,并返回 404 Not Found 状态码;反之,则继续完成 MVC...bookDtoList = Mapper.Map>(books); return bookDtoList.ToList(); } 重构 GetBook 方法与此类似...Mapper.Map(book); return bookDto; } 当添加一个子级资源,将 BookForCreationDto 对象映射为 Book 后,还需要为其 AuthorId 属性设置值

    55130

    asp.net core之路由

    路由系统的工作流程如下: 接收传入的 URL 请求。 根据路由模板匹配请求的 URL。 如果找到匹配的路由,则将请求转发给相应的处理程序。 如果没有找到匹配的路由,则返回 404 错误。...需要注意的是,这种对ApiController无效,适合MVC模式。只要有ApiController特性标签,则必须使用[Route]特性标记路由。...属性路由 属性路由是通过在处理程序的属性上添加路由特性来定义的。...guid:表示参数必须是 GUID。 long:表示参数必须是长整数。 下表是官方给出的约束表格: 要在路由模板中使用约束,可以在参数名称后面使用冒号 :,并指定约束的名称。...,包括路由的基本原理、路由模板、路由参数、路由约束和路由属性。

    23210

    ASP.NET MVC Controller激活系统详解:IoC的应用

    (设置)注入和接口注入,而我个人习惯将其划分为一种(类型)匹配和三种注入: 类型匹配(Type Matching):虽然我们通过接口(或者抽象类)来进行服务调用,但是服务本身还是实现在某个具体的服务类型中...真正的MVC在ASP.NET MVC中的体现如下图所示。 ? 对于一个ASP.NET MVC应用来说,用户交互请求直接发送给Controller。...构造函数中的参数containnerName表示使用的UnityConainer的配置名称,如果静态字典中存在着与之匹配的UnityConainer对象,则直接获取出来作为UnityConainer属性的值...根据我们即将注册的路由规则,这个链接地址的格式为/Employee/Detail/{Name}/{Id}。...在RegisterRoutes方法中我们注册两个路由,前者针对Detail操作(URL模版包含员工的ID和姓名),后者针对Index操作。

    1.8K90

    Asp.Net Web API(三)

    当Web API接收到一个请求的时候,它将这个请求路由到一个Action。         注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...category=category 然而,以下URI就不匹配,因为它缺少“api”字段 /product/1              注意:在路由中使用“api”的原因是为了避免与ASP.NET MVC...因为如果不注释 Web API会匹配到请求匹配的多个操作错误 ?...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。   你也可以通过使用ActionName注解属性来覆盖动作名。...在这种背景下,Action选择算法如下 创建该控制器中与HTTP请求方法匹配的所有Action的列表 如果路由字典有Action条目,移除与该条目值不匹配的Action 试图将Action参数与该URI

    1.7K50

    ASP.NET MVC HtmlHelper类

    先贴一下MSDN的HtmlHelper的链接,MSDN对每一个构造函数、属性、方法和扩展方法都做了说明,我这里就常用的部分方法做一下简要的展示。...链接 @Html.ActionLink() 生成超链接,并自动根据路由进行匹配。 Eg: @Html.ActionLink("超链接eg", "About","Hello") ?...自动匹配了超链接的标题,若不指定,则按照当前默认路由规则生成链接,避免了当路由规则发生变化后,需要对超链接进行重复修改。 常量或静态内容 @Html.Raw() 输出打印常量或者静态内容。 ?...namespace System.Web.Mvc 注意:为什么要改命名空间为System.Web.Mvc?...这是因为如果不改命名空间,我们要使用自定义的扩展方法需要在每个页面中引入Models(MyHtmlHelper所在的那个命名空间)这个命名空间,为了防止重复的命名空间引入操作(想想我们使用Html.TextBox()不也没有引入命名空间么

    1.8K30

    Blazor学习之旅(6)路由系统

    Blazor 的路由系统就和 ASP.NET MVC的路由系统一样,可以为我们提供灵活的选项,可用于确保用户请求到达可处理它们并返回用户想要的信息的组件。...在  组件中,还可使用  标记指定在不存在匹配路由时返回给用户的内容。上面的示例返回单个   段落和错误消息提示"Sorry, there's nothing at this address."...例如,使用此属性指定页面处理对 /Todo 路由的请求: @page "/Todo" 如果要指定到组件的多个路由,请使用两个或更多 @page 指令: @page "/Todo" @page "/TodoItems...URL 匹配时将切换 active CSS 类。...比如将其限制为一个int类型: @page "/myorders/{orderId:int}" 除了int之外,还阔以添加的约束有 bool, datetime, decimal, double, float, guid

    33220

    【SpringMVC】基础入门(1)

    Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤ import org.springframework.stereotype.Controller...⽤到的注解之⼀,它是⽤来注册接⼝的 路由映射的....⽤包装类型 (2)传参顺序不影响结果 当有多个参数时,前后端进⾏参数匹配时,是以参数的名称进⾏匹配的,因此参数的位置是不影响后端获取参数的结果 5:传递对象 package com.example.springbootmvc...Spring 会根据参数名称⾃动绑定到对象的各个属性上, 如果某个属性未传递, 则赋值为null(基本类型则赋值为默认初识值, ⽐如int类型的属性, 会被赋值为0) 6:Requestparam (...public Object r7(Person p){ return p.toString(); } 可以看到我们用postman发送json请求,服务器并没有收到我们想要的值为什么呢

    9510

    【ASP.NET Core 基础知识】--路由和请求处理--Attribute路由

    通过在控制器类或操作方法上应用特定的属性,可以定义URL模板,从而实现路由匹配。 重要性: 可读性更强:使用属性路由,可以定义更加清晰和易读的路由路径,使得URL更加友好和易于理解。...**灵活性更高:**属性路由可以更加灵活地定义路由规则,支持多种路由匹配方式,如默认路由、自定义路由、参数路由等。 **可维护性更高:**属性路由的路由规则定义更加集中和清晰,易于维护和管理。...**性能更优:**属性路由在路由匹配时,可以利用编译时静态分析,提前解析路由模板,从而提高路由匹配的性能。...缺点: 相对复杂:属性路由的路由规则定义相对复杂,需要一定的学习成本。 性能较低:属性路由的路由规则定义是在运行时动态定义的,因此在路由匹配时性能相对较低。...比如,[HttpGet("{id:guid}")] 可以约束 id 必须是 GUID 类型。 自定义约束:你可以定义自己的约束。

    23700

    全面理解 ASP.NET Core 依赖注入

    最后再给大家简单介绍一下在控制台以及Mvc下如何使用DI,以及如何把默认的Service Container 替换成Autofac。...为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖 当一个类需要另一个类协作来完成工作的时候就产生了依赖。...Singleton, Scoped, Transient } 为了大家能够更好的理解这个生命周期的概念我们做一个测试: 定义一个最基本的IOperation里面有一个 OperationId的属性...这一步是在Mvc初始化控制器的时候完成的,我们后面再介绍到Mvc的时候会往细里讲。 3.3 View中使用 在View中需要用@inject 再声明一下,起一个别名。...loginService.GetUserName() 3.4 通过 HttpContext来获取实例 HttpContext下有一个RequestedService同样可以用来获取实例对象,不过这种方法一般不推荐

    2.3K80

    ASP.NET Core 依赖注入

    为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖 当一个类需要另一个类协作来完成工作的时候就产生了依赖。...1.3 为什么要反转? 为了在业务变化的时候尽少改动代码可能造成的问题。 比如我们现在要把从EF中去验证登录改为从Redis去读,于是我们加了一个 RedisLoginService。...Singleton, Scoped, Transient } 为了大家能够更好的理解这个生命周期的概念我们做一个测试: 定义一个最基本的IOperation里面有一个 OperationId的属性...这一步是在Mvc初始化控制器的时候完成的,我们后面再介绍到Mvc的时候会往细里讲。 3.3 View中使用 在View中需要用@inject 再声明一下,起一个别名。...loginService.GetUserName() 3.4 通过 HttpContext来获取实例 HttpContext下有一个RequestedService同样可以用来获取实例对象,不过这种方法一般不推荐

    1.8K91

    asp.net MVC 应用程序的生命周期

    ,返回的不为空,说明匹配正确,关于路由规则的匹配,说起来也不短,这里就不大幅介绍,有时间下次再开篇详解路由机制。...匹配成功后,返回一个RouteData类型的对象,RouteData对象都有些什么属性呢?...在看看上面的UrlRoutingModule类,里面有一个RoutCollection属性,所以UrlRoutingModule能够获取路由表中的所有规则,这里值得注意的是,路由规则的匹配是有顺序的,如果有多个规则都能够匹配...相反的如果一个请求,没有匹配到任何路由,那么该请求就不会被处理。 这里返回的RouteData里的RouteHandler就是MVCRouteHandler。为什么呢?...生成MvcHander 在上面路由匹配的过程中,与匹配路由相关联的MvcRouteHandler ,MvcRouteHandler 实现了IRouteHandler 接口。

    1.4K10

    asp.net MVC 应用程序的生命周期

    ,返回的不为空,说明匹配正确,关于路由规则的匹配,说起来也不短,这里就不大幅介绍,有时间下次再开篇详解路由机制。...匹配成功后,返回一个RouteData类型的对象,RouteData对象都有些什么属性呢?...在看看上面的UrlRoutingModule类,里面有一个RoutCollection属性,所以UrlRoutingModule能够获取路由表中的所有规则,这里值得注意的是,路由规则的匹配是有顺序的,如果有多个规则都能够匹配...相反的如果一个请求,没有匹配到任何路由,那么该请求就不会被处理。 这里返回的RouteData里的RouteHandler就是MVCRouteHandler。为什么呢?...RouteHandler                                                         生成MvcHander 在上面路由匹配的过程中,与匹配路由相关联的

    1.7K30

    asp.net MVC 应用程序的生命周期

    ,返回的不为空,说明匹配正确,关于路由规则的匹配,说起来也不短,这里就不大幅介绍,有时间下次再开篇详解路由机制。...匹配成功后,返回一个RouteData类型的对象,RouteData对象都有些什么属性呢?...在看看上面的UrlRoutingModule类,里面有一个RoutCollection属性,所以UrlRoutingModule能够获取路由表中的所有规则,这里值得注意的是,路由规则的匹配是有顺序的,如果有多个规则都能够匹配...相反的如果一个请求,没有匹配到任何路由,那么该请求就不会被处理。 这里返回的RouteData里的RouteHandler就是MVCRouteHandler。为什么呢?...生成MvcHander 在上面路由匹配的过程中,与匹配路由相关联的MvcRouteHandler ,MvcRouteHandler 实现了IRouteHandler 接口。

    1.9K90
    领券