首页
学习
活动
专区
圈层
工具
发布

Asp.Net WebApi核心对象解析(一)

二.WebApi路由机制的简要概述:     对于ASP.NET Web API路由的介绍会比较简单,因为对于熟悉asp.net mvc的人来说不是什么难事,而且本次博文的重点并不是在这里,所以在这里只会做一个简单的介绍...ASP.NET WebAPI使用HTTP方法,而不是URI路径,以此来选择动作。还可以使用MVC样式路由的WebAPI。...在ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...路由时,已尽量注意与AspNet Mvc的路由发生冲突,这一点在ASP.NET Web API中做了一个防范。     ...(3).运行各种筛选器,这些筛选器可以是为操作方法或控制器配置,也可以是全局的。   (4).为控制器类的操作方法提供适当的上下文状态。

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

    .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证

    如图:现在你要在控制器里面判断,账号名称、密码、邮箱不能为空,并且名称和密码不超过16位。 上面这个图只是个理想中的小例子,实际开发情况是,可能一次性要传十几个字段甚至更多。...注:这一步会有个知识点,叫做模型验证,不懂的童鞋可以百度下,MVC会通过一定规则自动直接将参数反序列化成所对应的实体类,但是因为我这个示例是webapi模式的,写法略有不同,所以还要在参数前加个[FromBody...至于具体为什么会自动反序列化,在本篇并不是我要讲的主题,所以感兴趣的童鞋可以百度下:MVC下的ModelBinder    。...这段代码的意思就是:每当进入控制器方法之前,会判断这个方法的名称,如果包含的有Insert、check、update这三者的任意一个,都会进行拦截验证(对模型验证的结果进行判定),如果为false,那么就返回给客户端一个...梳理下思路,大致有几种,第一种是用某种手段控制类中的这些验证特性,或者控制类中的属性字段,如启用或停用,但是c#不能对属性字段进行停启用,而控制类中的这些验证特性也有点天方夜谭,本身就是微软封装好的,你得反编译一下看下源码

    1.1K10

    VB.NET 创建ASP.NET WebAPI及应用(一)

    WebAPI服务器" End Function End Class 运行看一下效果!!!!!!! 完美运行,精简到这里即可!!!!...接下来就是我们的路由大侠了RouteConfig.vb,这里面可以配置MVC路由和API等相关路由 3.3,最后就是我们的主角WebApiConfig.vb配置API相关属性和主路由 四,最后说的就是最常用的部分控制器目录...Controllers,目录里面已经生成了两个默认的控制器,分别是MVC控制器HomeController.vb和WebAPI控制器ValuesController.vb 4.1 MVC控制器HomeController.vb...继承了MVC的控制器基类,不知我们的主角,但是可以配置一个主页; 4.2 WebAPI控制器ValuesController.vb继承了ApiController的控制器基类 4.3 我们再次运行一下项目...,看一下WebAPI控制器的访问,MVC控制已配置默认控制器Home启动项目是,第一眼看到的即是!!!

    4.2K20

    在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

    在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFilter,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器...有了这些,我们可以做很多很灵活的操作,例如通过设置ControllerName字段强制更改控制器的名称让程序中写死的控制器名失效,也可以通过Filters字段动态更新它的过滤器集合,通过RouteValues...说到这里,很多人会觉得这玩意儿和自定义过滤器看起来差不多,最开始我也这么认为,但经过实际代码调试我发现它的生命周期要比过滤器早的多,或者说根本无法比较,这个家伙只需要在应用启动时执行一次并不用随着每次请求而执行...通过代码调试发现,应用启动时遍历了系统中的所有控制器去执行Apply操作,那么通过IApplicationModelConvention一样也能实现这个功能,因为它里面包含了控制器集合: public...Asp.Net Core MVC框架提供的ServiceFilter可以解决这个问题,ServiceFilter本身是一个过滤器,它的不同之处在于能够通过构造函数接收一个Type类型的参数,我们可以在这里把真正要用的过滤器传进去

    1.6K40

    14个Spring MVC超实用技巧!

    这是最可取的,因为它很简单:无需在配置文件中为控制器声明bean。 注意:通过使用@Controller 注解,您可以拥有一个多动作控制器类,该类能够处理多个不同的请求。...当在类级别使用此注解时,该类将成为单动作控制器。例如: 当@RequestMapping 注解在方法级别使用的,你可以有一个多动作控制器。...这是将控制器HttpServletRequest 与Servlet API 的接口分离的好方法。 Spring将方法参数用户名和密码绑定到具有相同名称的HTTP请求参数。...如果参数名称与变量名称不同,则可以如下指定参数的实际名称: 该@RequestParam 注解也有两个额外的属性,这可能是在某些情况下是有用的。该属性指定参数是否为必需。...另一个属性是 defaultValue,可以在请求参数为空时用作后备值。

    1.6K10

    ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    ,该区域名称为Head,但不是必须渲染(required:false)。...当我们的页面未指定Layout的时候,如果项目在全局或在同文件夹内存在_ViewStart.cshtml时该页面的Layout会自动继承自_ViewStart.cshtml,如果不同的文件夹层级都存在_...当创建具有模板页的内容页的时候,内容页就呈现在模板页中@RenderBody()所在的位置,一个模板页中只能有一个@RenderBody()。   ...WCF是一个通用的服务架构平台,其设计之初在于创建一个通用的Web Service平台,可以在各种不同的协议(TCP, UDP, HTTP)下使用,仅仅通过EndPoint的配置而不需要修改代码实现就能适应不同的工作环境...各种因素纠结下,微软于是便把WCF里面的这部分团队抽离出来合并到了MVC组中,才有了现在的ASP.NET Web API,并包含在MVC 4中发布。

    2.8K20

    .NET MVC第八章、Web Api 跨域接口

    .NET MVC第八章、Web Api 跨域接口 ---- 目录 .NET MVC第八章、Web Api 跨域接口 创建Web Api项目 WebApi项目启动 主页中的API选项 ASP.NET...Web Api,取消【为HTTPS】配置,如果选了的话操作的时候会比较麻烦。...WebApi项目启动 主页中的API选项 这里选择get请求的api/values help下面的api/values对应结果 这个不是我们想要的,那么我们单独访问一下ip:port/api/values...ASP.NET MVC WEB API操作 由于WebApi的单独的一个项目,它的默认配置不太合适咱们使用,我们要对默认设置做一些调整。...routeTemplate: "api/{controller}/{action}/{id}", 3、自定义API接口 依次选择【Web API】,【Web API 2控制器 - 空】,【添加】 输入控制器名称

    86220

    ASP.NET Core中的Controller

    ASP.NET CORE出现之前我们实现的Controller,MVC都继承自Controller基类,WebApi的话继承自ApiController。...现在ASP.NET CORE把MVC跟WebApi合并了,已经不再区分MVC或者WebApi。ASP.NET CORE的Controller继承结构也发生了变化。...显然这是为Restful Api设计的基类,所以当你要设计一个Restful(web api)接口的时候可以选择继承自ControllerBase,它已经可以满足你的需求。...总结 设计restful(web api)接口的时候可以继承ControllerBase 设计MVC系统的时候可以继承Controller 当一个POCO类名称包含"Controller"后缀或添加ControllerAttribute...的时候框架会认为这是一个控制器 当一个类不想被框架当做控制器的时候可以添加NonControllerAttribute

    2K20

    MVC3教程之新手入门

    在打开的添加控制器窗口中,修改控制器的名称为“HomeController”,模板为“空控制器”,如下图,点击“添加”按钮完成添加。 ?   ...我们的Helloworld已经可以运行起来了,但这不是我们想要的结果,因为到目前为止,只是在修改控制器,接下来,我们为控制添加一个Welcome方法,并在视图中,显示欢迎信息。   ...编译项目,在浏览器地址栏中输入地址:http://localhost:xxx/home/Welcome(xxx为端口号,在不同的计算机中会有所不同),运行结果如下: ?   ...,它是一个新的MVC3属性,MVC2 中的控制器支持 ViewData 属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。...注意,在许多预发布版本中,这个属性被称为 ViewModel。

    2.1K20

    C# .NET面试系列六:ASP.NET MVC

    在ASP.NET MVC中,控制器处理HTTP请求,模型表示应用程序的数据和业务逻辑,视图负责呈现用户界面。ASP.NET MVC通常与Web应用程序一起使用,而不是Windows应用。...Web API是一种灵活而强大的工具,可用于构建面向Web的服务,为不同平台和设备提供数据和功能。在ASP.NET中,ASP.NET Web API是一个流行的Web API框架。17....以下是一些常用的验证注解属性:1、Required[Required] 属性用于指定某个字段是必填的,不能为 null 或空。...3、独立路由每个 Area 都可以拥有自己的路由规则,这意味着不同的 Area 可以使用相同的控制器和动作方法名称而不会产生冲突。Areas 内的路由规则是相对独立的。...4、命名空间隔离Area 允许在同一应用程序中使用相同名称的控制器和视图,因为它们位于不同的命名空间下。这有助于解决潜在的命名冲突问题。

    40210

    mvc(1)——新建一个ASP.NET MVC项目

    为保持事情简单,选择”Empty(空模板)”选项,并在“添加文件夹和核心引用”中勾选“ MVC复选框,这会创建一个基本的MVC项目,它带有最少的预定义内容。最后点击“确认”按钮。   ...MVC约定,将控制器放在Controllers的文件夹中,这是VisualStudio在建立项目时创建的。   ...(控制器)”,然后弹出如下窗体:   当”AddScaffold(添加支架)”对话框出现后,选择”MVC5Controller-Empty(MVC5· 空控制器)”选项,如图2刁所示,...控制器名称有几个约定:提供的控制器名称应当指明其目的;默认的控制器名称称为“Home”:控制器名称具有”Controller”后缀。   ...你的浏览器请求这一URL时,看到的肯定是一个不同的端口号,因为VisualStudio在创建项目时会分配一个随机的端口。如果查看Windows任务栏的通知区,会发现一个IISExpress图标。

    2.4K40

    Spring MVC控制器的14个技巧

    这是最可取的,因为它很简单:无需在配置文件中为控制器声明bean。注意:通过使用@Controller 注解,可以拥有一个多动作控制器类,该类能够处理多个不同的请求。...4、为处理程序方法指定URL映射这是编码控制器类时必须执行的强制性任务,该控制器类旨在处理一个或多个特定请求。...如果参数名称与变量名称不同,则可以如下指定参数的实际名称:@RequestParam("SSN") int securityNumber该@RequestParam 注解也有两个额外的属性,这可能是在某些情况下是有用的...另一个属性是 defaultValue,可以在请求参数为空时用作后备值。...Spring也非常灵活,可以将ModelAndView 对象声明 为处理程序方法的参数,而不用创建一个新的对象。

    57721

    ASP.NET Core中三个egg疼的路由函数

    MapControllerRoute 它的官方定义是这样的,将控制器操作的终结点添加到Microsoft.AspNetCore.Routing.IEndpointRouteBuilder里,并指定具有给定名称...); 当请求url满足{host}{controller_name}{action_name}{option_id}这样的格式时,将命中Controller=controller_name Action...=action_name的方法,如果url没有提供controller和action名称,那么将会命中默认的home控制器中的index方法。...简单地说这是MVC项目初期的写法,让用户发送请求的url去匹配Controller和Action。...不对约定路由做任何假设,也就是说不使用约定路由,而是依赖用户的特性路由, 它一般用在WebAPI项目中。 全文梳理就会发现: 官方英文描述屡次出现的route,其实特指的是约定路由。

    78640

    编写Spring MVC控制器的14个技巧

    然后,控制器调用业务类来处理与业务相关的任务,然后将客户端重定向到逻辑视图名称,该名称由Spring的调度程序Servlet解析,以呈现结果或输出。这样就完成了典型的请求-响应周期的往返。...这是最可取的,因为它很简单:无需在配置文件中为控制器声明bean。 注意:通过使用@Controller 注解,您可以拥有一个多动作控制器类,该类能够处理多个不同的请求。...如果参数名称与变量名称不同,则可以如下指定参数的实际名称: @RequestParam("SSN") int securityNumber 该@RequestParam 注解也有两个额外的属性,这可能是在某些情况下是有用的...另一个属性是 defaultValue,可以在请求参数为空时用作后备值。...Spring也非常灵活,因为您可以将ModelAndView 对象声明 为处理程序方法的参数,而不用创建一个新的对象。

    1.8K31

    Spring MVC的14个实用技巧,get一下!

    然后,控制器调用业务类来处理与业务相关的任务,然后将客户端重定向到逻辑视图名称,该名称由Spring的调度程序Servlet解析,以呈现结果或输出。 这样就完成了典型的请求-响应周期的往返。...这是最可取的,因为它很简单:无需在配置文件中为控制器声明bean。 注意:通过使用@Controller 注解,您可以拥有一个多动作控制器类,该类能够处理多个不同的请求。...如果参数名称与变量名称不同,则可以如下指定参数的实际名称: @RequestParam("SSN") int securityNumber 该@RequestParam 注解也有两个额外的属性,这可能是在某些情况下是有用的...另一个属性是 defaultValue,可以在请求参数为空时用作后备值。...Spring也非常灵活,因为您可以将ModelAndView 对象声明 为处理程序方法的参数,而不用创建一个新的对象。

    1.5K20

    ASP.NET MVC5高级编程——(3)MVC模式的模型

    首先数据库中主外键的定义: 主键 外键 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 作用: 用来保证数据完整性 用来和其他表建立联系用的...下面介绍典型的基架模板: (1)MVC5 Controller——Empty 该会向Controllers文件夹中添加一个具有指定名称且派生自Controller的类(控制器)。...(2)添加基架 --> 包含视图的MVC5 控制器(使用EF) --> 添加: ? (3)在“添加控制器”对话框中,选择模型类、数据上下文类,修改控制器名称。...5.4 响应编辑时的POST请求 接受HTTP POST请求来编辑信息的操作的名称也是Edit,但不同于前面看到的Edit操作,因为它有一个HttpPost操作选择器特性: ?...简单来说,模型绑定的作用:自动从视图的Form集合提取网页的属性值,比如name属性,然后存储到模型类(如Album)中,也就是说,当模型绑定器读取到Album具有Name属性时候,自动在请求中寻找名为

    6.7K40

    Spring MVC 的请求映射与参数

    int 是原生类型参数,原生类型不能放入 null 值,因此当请求参数为空时,Spring MVC 无法为我们设置 int 类型的方法参数!...1 : page;”,当页码为 null 时,把页码设置为第 1 页,否则在底层查询方法执行时,很可能会发生 NullPointerException!...使用路径参数时,我们可以在 URL 路径上,而不是?后传递参数值。...(初学时不是非常建议使用“路径参数”方式传参,因为可能会引起相对路径的混乱) 对象型参数  当我们完成了一个表单的编辑,要提交数据时,表单中往往存在许多元素,这些元素对应着一个对象的许多属性。...允许我们用对象去一口气接收表单提交上来的多个参数,默认只要“对象的属性名”与“表单元素的 name 名称”一致就行。

    2.1K20
    领券