我有这个ControllerAction:[HttpPost][ActionName("aaa")]publicHttpResponseMessageaaa(Zz)//notice-no[FromBody]{returnRequest.CreateResponse(HttpStatusCode.OK,1);}Z是:publicclassZ{publicstringa{get;set;}}但是当我通过fiddler发帖时:POSThttp://localhost:11485/api/profiles/aaaHTTP/1.1Content-Type:application/x-www-fo
我在我的WebApiKatana应用程序中使用路由。我有以下两个工作正常的路由映射。我的问题是,我可以使用可选参数将它们组合成一个路由映射吗?我看不到一个明显的方法来做到这一点并保持所需的功能。我对此并不陌生,可能错过了一种可以帮助我实现这一目标的技术。如果路线必须保持这种状态,那么这不是问题。config.Routes.MapHttpRoute(name:"UnRegister",routeTemplate:"api/services/{serviceName}/{location}",defaults:new{controller="MyController",location=R
我正在使用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包之前(今年
我正在构建一个当前使用传统.asmx网络服务的网络应用程序,我希望将这些服务升级到WebAPI。我在网上四处张望,但我正在寻找进行此升级的最简单/最快的方法。Web服务目前看起来有点像这样:usingSystem.Web.Services;[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)][System.Web.Script.Services.ScriptService]publicclassSomeWebServiceName:
我们正在构建一个使用Owin托管的WebApi。以前,我们在Controller操作中使用HttpResponseException返回404状态代码等,并且运行良好。但是,当我们开始使用Owin(自托管)时,我们遇到了这种方法的问题,导致HttpResponseException被序列化为json/xml并且状态代码从404更改为500(内部服务器错误)。这是我们的代码:publicclassInvoicesController:ApiController{privatereadonlyIInvoiceRepository_invoiceRepository;publicInvoic
我正在尝试将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
我有一个Controller从以下代码生成异常并显示以下消息:-publicHttpResponseMessagePutABook(BookbookToSave){returnRequest.CreateErrorResponse(HttpStatusCode.Forbidden,"NoPermission");}正在使用以下代码测试此方法:-varresponse=controller.PutABook(newBook());Assert.That(response.StatusCode,Is.EqualTo(HttpStatusCode.Forbidden));Assert.Tha
我有一个使用自托管WebAPI的窗口服务。HttpSelfHostConfiguration.HostNameComparisonMode设置HostNameComparisonMode.Exact为主机名强匹配。varconfig=newHttpSelfHostConfiguration(uri);config.HttpSelfHostConfiguration=System.ServiceModel.HostNameComparisonMode.Exact;this._server=newHttpSelfHostServer(config);_server.OpenAsync().
由于对另一个项目的依赖,我被迫将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);这似乎是导致问题的核心库。当我只更新客户端时,它没有抛出错误。我注意到,如果
我正在处理这个WebAPI项目,我需要为其创建单元测试。该项目的基础是使用VS2010创建的,然后添加了一个WebApi模块。Controller的工作有点妨碍测试/模拟。我正在使用xUnit和Moq,但绝对没有必要坚持使用这两个。应用程序使用特定的对象来处理数据库访问,所以我有controllerObject及其构造函数需要DataAccessObject我在模拟Controller/数据访问对时遇到问题。我尝试运行的第一个测试是GetAllFromDataBase,但我真的不知道如何去做。编辑:我按照CuongLe告诉我的去做了,现在一切都在进行中,我真的很感激。但我遇到了另一个问