如何在我的查询的where子句中使用值数组

时间:2012-08-14 04:12:31

标签: asp.net-mvc-3 visual-studio-2010 kendo-ui

我正在使用asp.net mvc3。 我想使用parameterMap将数组从视图传递到控制器,如下所示 在我看来:

     parameterMap:
            function (data, options) {
               if (options === "read") {
               sessionStorage.setItem("value","array");
               val = sessionStorage.getItem("value"); // contains array
               return { model: JSON.stringify(val) }; //passing array to controller
                }
            }

在控制器中:

  public ActionResult SearchDetails( string model)     
  {
     var query = (from ......).where();//want to compare array values in controller

  }

但是我无法在控制器中检索这些值。你告诉我如何在我的控制器中检索这些值数组而不使用循环语句。

我的数组只包含整数值(id's),同时调试当我将光标置于action方法的参数时,值将出现在“\”[{\\“id \\”:1},{\\ “id \\”:2}] \“”format.can你告诉我如何在我的查询的where子句中使用这个值数组。

1 个答案:

答案 0 :(得分:0)

如果您受到约束并决定坚持使用字符串输入,我会认为对拆分的调用会起作用。但是,如果您将其作为字符串更改为仅引入模型,则会更容易。你尝试过类似的东西吗?

  public ActionResult SearchDetails( model model)     
  {
     var query = (from ......).where();//want to compare array values in controller

  }
你想尝试做一些与SQL IN相同的东西吗?如果是这种情况,那么在查询中使用.Contains。例如:

public ActionResult SearchDetails(model model)
{
    var query = from d in context.data
                where model.Contains(d.id)
                select d;
}