将数据从控制器传递到DAL

时间:2013-02-08 05:42:56

标签: asp.net-mvc-4

我创建了一个Web方法,它将采用这样的参数

public HttpResponseMessage  MakeOrders([FromUri] int[] orderId)
{
}

请求将是这样的

http://www.test.com/MakeOrders?orderId=1&orderId=2

我需要将这些orderId's传递给DAL。所以我有两个问题

  1. [FromUri]这是正确的实现,还是在查询字符串中传递数组值的标准方法?
  2. 我是否需要循环orderId's并作为单个元素传递给DAL,以便我可以像这样制作我的DAL
  3. DAL

    public void UpdateOrder(int OrderId)
    {
       var query = 'Update tbl SET isApproved=1 WHERE OrderId=@orderid'; 
    }
    

    或者我需要发送像这样的数组

    public void UpdateOrder(int[] OrderId)
    {
       var query = 'Update tbl SET isApproved=1 WHERE OrderId in (@orderid)'; 
    }
    

1 个答案:

答案 0 :(得分:1)

第一个答案是: 我认为更好的方法是以json格式传递List

例如:

// Json format

var a=[1,2,3];

使用jquery的$ .ajax()方法传递此值。

第二个答案是:

public void UpdateOrder(int[] OrderId)
{
   var orderids= string.Join(",", (string[])OrderId.ToArray(Type.GetType("System.String")))
   var query = 'Update tbl SET isApproved=1 WHERE OrderId in (@orderids)'; 
}