草庐IT

c# - 使用 WebApi ( $inlinecount ) 的 OData 分页

我正在使用OData对从WebAPI调用返回的一长串项目进行分页。我可以通过具有开始和结束索引的url过滤数据。我的问题是,我怎么知道项目的总数?因此,我可以在调用WebAPI的移动设备上显示第1页,共3页(20项)。 最佳答案 试试这个方法:http://www.strathweb.com/2012/08/supporting-odata-inlinecount-with-the-new-web-api-odata-preview-package/它使用最新的WebAPIOData包。在交付最终的WebAPIOData包之前(今年

c# - 将 Web 服务从 asmx 升级到 webAPI

我正在构建一个当前使用传统.asmx网络服务的网络应用程序,我希望将这些服务升级到WebAPI。我在网上四处张望,但我正在寻找进行此升级的最简单/最快的方法。Web服务目前看起来有点像这样:usingSystem.Web.Services;[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)][System.Web.Script.Services.ScriptService]publicclassSomeWebServiceName:

c# - 使用 Owin 自主机时从 WebApi Controller 抛出 HttpResponseException

我们正在构建一个使用Owin托管的WebApi。以前,我们在Controller操作中使用HttpResponseException返回404状态代码等,并且运行良好。但是,当我们开始使用Owin(自托管)时,我们遇到了这种方法的问题,导致HttpResponseException被序列化为json/xml并且状态代码从404更改为500(内部服务器错误)。这是我们的代码:publicclassInvoicesController:ApiController{privatereadonlyIInvoiceRepository_invoiceRepository;publicInvoic

c# - 将 C# 对象发送到 webapi Controller

我正在尝试将C#对象传递给WebAPIController。api配置为存储发布到它的产品类型的对象。我已经使用JqueryAjax方法成功添加了对象,现在我正试图在C#中获得相同的结果。我创建了一个简单的控制台应用程序来向api发送Post请求:publicclassProduct{publicintId{get;set;}publicstringName{get;set;}publicstringCategory{get;set;}publicdecimalPrice{get;set;}}staticvoidMain(string[]args){stringapiUrl=@"htt

c# - 如何从 WebAPI 中的 HttpResponse 对象获取错误消息?

我有一个Controller从以下代码生成异常并显示以下消息:-publicHttpResponseMessagePutABook(BookbookToSave){returnRequest.CreateErrorResponse(HttpStatusCode.Forbidden,"NoPermission");}正在使用以下代码测试此方法:-varresponse=controller.PutABook(newBook());Assert.That(response.StatusCode,Is.EqualTo(HttpStatusCode.Forbidden));Assert.Tha

c# - WebAPI自托管503错误(HttpSelfHostConfiguration设置了HttpSelfHostConfiguration)

我有一个使用自托管WebAPI的窗口服务。HttpSelfHostConfiguration.HostNameComparisonMode设置HostNameComparisonMode.Exact为主机名强匹配。varconfig=newHttpSelfHostConfiguration(uri);config.HttpSelfHostConfiguration=System.ServiceModel.HostNameComparisonMode.Exact;this._server=newHttpSelfHostServer(config);_server.OpenAsync().

c# - 升级到WebApi.Core报错-直接路由不能使用参数 'controller'

由于对另一个项目的依赖,我被迫将Microsoft.AspNet.WebApi.Client和Microsoft.AspNet.WebApi.Core从版本5.0.0.0升级到5.2.0.0,现在我的API抛出错误“A直接路由不能使用参数“controller”。指定文字路径代替此参数以创建到Controller的路由。调用时在Global.asax.cs中初始化HttpConfiguration时抛出错误GlobalConfiguration.Configure(WebApiConfig.Register);这似乎是导致问题的核心库。当我只更新客户端时,它没有抛出错误。我注意到,如果

C# WebApi 单元测试和模拟 Controller

我正在处理这个WebAPI项目,我需要为其创建单元测试。该项目的基础是使用VS2010创建的,然后添加了一个WebApi模块。Controller的工作有点妨碍测试/模拟。我正在使用xUnit和Moq,但绝对没有必要坚持使用这两个。应用程序使用特定的对象来处理数据库访问,所以我有controllerObject及其构造函数需要DataAccessObject我在模拟Controller/数据访问对时遇到问题。我尝试运行的第一个测试是GetAllFromDataBase,但我真的不知道如何去做。编辑:我按照CuongLe告诉我的去做了,现在一切都在进行中,我真的很感激。但我遇到了另一个问

c# - 将 DateTimeOffset 作为 WebAPI 查询字符串传递

我有一个看起来像这样的WebAPI操作:[Route("api/values/{id}")]publicasyncTaskDelete(stringid,DateTimeOffsetdate){//dostuff}但是当我从一个HttpClient实例调用它时,制作一个URL如下:string.Format("http://localhost:1234/api/values/1?date={0}",System.Net.WebUtility.UrlEncode(DateTimeOffset.Now.ToString()));//->"http://localhost:1234/api/

c# - ASP.Net MVC 4 Web API Controller 不适用于 Unity.WebApi

我的ASP.NetMVC4WebAPIController不支持Unity.WebApi。在同一个项目中,简单的Controller可以正确地与Unity.Mvc3配合使用。但是当我运行从ApiController派生的WebAPIController时,我收到一条消息:{"$id":"1","Message":"Anerrorhasoccurred.","ExceptionMessage":"Type'ElectricTests.Controllers.Api.DocumentsController'doesnothaveadefaultconstructor","Exception