如何创建ASP .NET MVC4 Web API来搜索我的多个参数

安德鲁斯

如何创建ASP.NET MVC4 json Web API,允许按ID,条形码,搜索词搜索产品或检索自日期以来的所有产品?

我试图在下面使用ASP.NET MVC4控制器。

呼唤

http://localhost:52216/admin/api/Products/GetSince?since=2014-03-16%2021:47:29&_=1395007124964

返回错误

Multiple actions were found that match the request:

System.Net.Http.HttpResponseMessage GetSince(System.String) on type MyApp.Controllers.ProductsController\r\n


System.Net.Http.HttpResponseMessage GetId(System.String) on type MyApp.Controllers.ProductsController"

如何解决呢?这段代码很难看,它包含许多类似的方法。哪一种是创建此类API的最佳方法?如何改进此代码?应该使用Http GET方法,但是可以更改方法名称和签名。

使用ASP.NET/Mono MVC4,jquery,jquery UI。还应支持Windows 2003 Server,因此不能使用.NET 4.5或MVC5。

public class ProductsController : ApiController
{
    [HttpGet]
    public HttpResponseMessage GetSince([FromUri]string since))
    {
        var toodelist = GetProducts(since, null, null, null);
        return Request.CreateResponse(HttpStatusCode.OK,
           new { products = toodelist.ToArray() });
    }

    [HttpGet]
    public HttpResponseMessage GetId([FromUri]string id)
    {
        var toodelist = GetProducts(null, null, id, null);
        return Request.CreateResponse(HttpStatusCode.OK,
           new { products = toodelist.ToArray() });
    }


    [HttpGet]
    public HttpResponseMessage GetBarcode([FromUri]string barcode)
    {
        var toodelist = GetProducts(null, barcode, null, null);
        return Request.CreateResponse(HttpStatusCode.OK,
           new { products = toodelist.ToArray() });
    }

    [HttpGet]
    public HttpResponseMessage GetTerm([FromUri]string term)
    {
        var toodelist = GetProducts(null, null, null, term);
        return Request.CreateResponse(HttpStatusCode.OK,
           new { products = toodelist.ToArray() });
    }

    static List<Product> GetProducts(string since, string barcode, string id, string term)
    {
        ... retrieves list of product from database using specified search criteria
        if not null
    }
}
巴德里

这样使用搜索条件DTO怎么样?

public class SearchCriteria
{
    public int? Id { get; set; }
    public DateTime? Since { get; set; }
    // Other properties
}

动作方法将是这样。

public class ProductsController : ApiController
{
    public HttpResponseMessage GetProducts([FromUri]SearchCriteria crit))
    {
        // Validate and clean crit object
        var list = GetProducts(crit);
        // return list
    }
}

GetProducts可以根据SearchCriteria对象中设置的属性返回产品列表如果查询字符串字段不存在,则对应的属性将为null。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建ASP .NET MVC4 Web API来搜索我的多个参数

来自分类Dev

如何在ASP.NET MVC4中为Web API网址创建通用方法

来自分类Dev

如何在asp.net MVC4中为Web API网址创建通用方法

来自分类Dev

如何在ASP.Net MVC4中创建自定义web.config?

来自分类Dev

自定义标题和信号:Asp.Net MVC4 Web Api

来自分类Dev

自定义标题和信号:Asp.Net MVC4 Web Api

来自分类Dev

如何在ASP.NET MVC4 Web API中捕获未定义的api方法调用

来自分类Dev

如何将ASP.Net MVC4 Web API与AngularJS部分视图结合使用(aka ng-include)

来自分类Dev

如何在ASP.Net MVC4和Web API 1项目中进行属性路由?

来自分类Dev

Asp.Net MVC4 Web API-我们是否需要OData来构建快速查询服务

来自分类Dev

如何在RedHat OS中运行asp.net MVC4 Web应用程序

来自分类Dev

无法在asp.net mvc4 Web应用程序中使ninject工作

来自分类Dev

陷入ASP.NET MVC4中的Google API YouTube搜索示例?

来自分类Dev

ASP.NET MVC4 ActionFilters

来自分类Dev

路由ASP.NET MVC4

来自分类Dev

Asp.net MVC4并行编程,用于多个API调用

来自分类Dev

Asp.net MVC4并行编程,用于多个API调用

来自分类Dev

在ASP.NET MVC4中动态创建控件

来自分类Dev

在同一解决方案中,前端ASP.NET MVC4作为一个项目,而ASP.NET Web API作为另一个项目-如何从前端调用WebAPI?

来自分类Dev

在同一解决方案中,前端ASP.NET MVC4作为一个项目,而ASP.NET Web API作为另一个项目,如何从前端调用WebAPI?

来自分类Dev

如何使用Web API和EF在ASP.NET MVC中创建动态功能

来自分类Dev

如何使用Web API和EF在ASP.NET MVC中创建动态功能

来自分类Dev

通过单击按钮mvc4 asp.net c#来增加计数

来自分类Dev

ASP.NET MVC4:在同一视图中过滤搜索结果

来自分类Dev

ASP.NET MVC4:在同一视图中过滤搜索结果

来自分类Dev

如何使用Alamofire POST请求将图像作为Base64String发送,以及如何在Asp.net MVC4 Web Api Controller中处理该请求?

来自分类Dev

使用Ninject的ASP.Net MVC4,HttpPost返回“无参数构造函数”

来自分类Dev

ASP.net MVC4中Html.BeginForm中的多个按钮中的问题

来自分类Dev

ASP.NET MVC4中的多个远程验证属性

Related 相关文章

  1. 1

    如何创建ASP .NET MVC4 Web API来搜索我的多个参数

  2. 2

    如何在ASP.NET MVC4中为Web API网址创建通用方法

  3. 3

    如何在asp.net MVC4中为Web API网址创建通用方法

  4. 4

    如何在ASP.Net MVC4中创建自定义web.config?

  5. 5

    自定义标题和信号:Asp.Net MVC4 Web Api

  6. 6

    自定义标题和信号:Asp.Net MVC4 Web Api

  7. 7

    如何在ASP.NET MVC4 Web API中捕获未定义的api方法调用

  8. 8

    如何将ASP.Net MVC4 Web API与AngularJS部分视图结合使用(aka ng-include)

  9. 9

    如何在ASP.Net MVC4和Web API 1项目中进行属性路由?

  10. 10

    Asp.Net MVC4 Web API-我们是否需要OData来构建快速查询服务

  11. 11

    如何在RedHat OS中运行asp.net MVC4 Web应用程序

  12. 12

    无法在asp.net mvc4 Web应用程序中使ninject工作

  13. 13

    陷入ASP.NET MVC4中的Google API YouTube搜索示例?

  14. 14

    ASP.NET MVC4 ActionFilters

  15. 15

    路由ASP.NET MVC4

  16. 16

    Asp.net MVC4并行编程,用于多个API调用

  17. 17

    Asp.net MVC4并行编程,用于多个API调用

  18. 18

    在ASP.NET MVC4中动态创建控件

  19. 19

    在同一解决方案中,前端ASP.NET MVC4作为一个项目,而ASP.NET Web API作为另一个项目-如何从前端调用WebAPI?

  20. 20

    在同一解决方案中,前端ASP.NET MVC4作为一个项目,而ASP.NET Web API作为另一个项目,如何从前端调用WebAPI?

  21. 21

    如何使用Web API和EF在ASP.NET MVC中创建动态功能

  22. 22

    如何使用Web API和EF在ASP.NET MVC中创建动态功能

  23. 23

    通过单击按钮mvc4 asp.net c#来增加计数

  24. 24

    ASP.NET MVC4:在同一视图中过滤搜索结果

  25. 25

    ASP.NET MVC4:在同一视图中过滤搜索结果

  26. 26

    如何使用Alamofire POST请求将图像作为Base64String发送,以及如何在Asp.net MVC4 Web Api Controller中处理该请求?

  27. 27

    使用Ninject的ASP.Net MVC4,HttpPost返回“无参数构造函数”

  28. 28

    ASP.net MVC4中Html.BeginForm中的多个按钮中的问题

  29. 29

    ASP.NET MVC4中的多个远程验证属性

热门标签

归档