问题 怎么样创建一个路由,不管客户端传不传这个参数,都可以被成功匹配. 解决方案 ASP.NET WEB API 的集中式路由和属性路由都支持路由声明可选参数. 在用集中式路由中可以通过 RouteParameter.Optional 指定一个可选参数,RouteParameter.Optional 等同于MVC 中的 UrlParameter.Option. 属性路由,通过在可选参数后面添加一个问好作为后缀.同时,必须为其指定默认值 工作原理 从根本上看,ASP.NET WEB API 支持的…
问题 怎么样将 Asp.Net Web Api 加入到现有的 Asp.Net MVC 项目中 解决方案 在 Visual Studio 2012 中就已经把 Asp.Net Web Api 自动地整合到了 MVC 项目模板中.自 Visual Studio 2013 以后,创建 ASP.Net Web应用程序使用的是一种新的"One ASP.NET"项目向导,在这里可以选择相应的组件,例如,MVC,Web API,WebForm,等等."One ASP.NET" 是…
问题 我们想快速启动一个 ASP.NET Web API 解决方案. 解决方案 APS.NET 模板一开始就支持 ASP.NET Web API.使用模板往我们的项目中添加 Controller,在我们解决方案的 Controllers 文件夹上右键,选择“添加”->"Scaffolding". 即用模式,可以从下面选择一个: Web API2 Controller Web API2 Controller with actions, using Entity Framework…
阅读导航 问题 解决方案 工作原理 代码演示 问题 如果仅仅针对指定的路由进行某些特定的消息处理,而不是应用于所有路由,我们应该怎么做呢? 解决方案 ASP.NET WEB API 的很多功能都内建了消息处理器.他们真正的威力是为消息的全局处理以及为全局的应用程序业务处理提供比较简单的处理机制.不过,在某一些场景下的需求是,使用消息处理器处理应用程序指定部分的特定行为. 我们要基于每个路由配置消息处理器(DelegatingHandler),而不是在 HttpConfiguration 中注册全…
问题 在 Controller 中有一个 public 的方法,但是又不想将这个 publlic 方法暴露成为一个 API. 解决方案 ASP.NET Web API 中,正常是通过 HTTP 谓词来匹配 Controller 中相关 Action 的.默认情况下,Contoller 中的每个 public 方法都是一个 Action.为了防止 public 的方法成为 Action,只要在 public 的方法上使用 [NonAction] 属性就可以. 工作原理 NoActionAttrib…