何时返回IHttpActionResult与对象在使用ASP.NETWebAPI的示例中,我看到了两种用于将数据返回到调用jQuery函数的不同方法。第一个方法返回一个Client类型的对象,但我不确定第二个方法返回什么。方法#1(返回客户端对象)varquery=context.Clients.OrderBy(c=c.OrgName);varcustomers=query.ToList();回头客;}}方法#2(IHttpActionResult提供什么好处?)ProxyCreationEnabled=false;varclient=context.Clients.FirstOrDefault(c=c.ID==clientId);if(client==null){returnNotFound();}返回确定(客户端);如果第二个方法查找单个对象,它有什么理由不能同时返回Client对象类型?返回IHttpActionResult提供了很好的关注点分离。您的控制器可以专注于以最明智的方式(状态代码、错误消息等)响应请求。另一个(服务)层可以专注于实际检索和转换业务数据。作为副作用,您的控制器方法变得更易于单元测试。考虑这个简单的例子:publicclassMyController:ApiController{//或者更好的是,依赖注入thisSomeService_service=newSomeService();publicIHttpActionResultGet(intid){if(id该方法的逻辑不仅可以通过阅读来理解,而且您现在可以更轻松自然地测试逻辑,例如(使用NUnit语法):[TestFixture]publicclassMyControllerTests{[Test]publicvoidGet_WithIdLessThan0_ReturnsBadRequest(){varcontroller=newMyController();intid=-1;IHttpActionResultactionResult=controller.Get(id);Assert.IsInstanceOf(actionResult);}}同样,你可以模拟服务分层并测试当您为控制器提供已知id参数时会发生什么。关于WebApi中的单元测试控制器的好文章第二种方法允许您仅返回状态代码(如示例中的404)、流文件内容和其他类型的非对象内容以上就是C#学习教程:什么时候返回IHttpActionResult如果vsObject分享的所有内容对你有用,还需要进一步了解C#学习教程,希望大家多多关注~——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
