0

我正在使用 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
        
  }

但我无法在控制器中检索这些值。如何在不使用循环语句的情况下在控制器中检索这些值数组?

我的数组只包含整数值(ids),在调试时,当我将光标放在操作方法的参数上时,值将出现在 ""[{\"id\":1},{\"id\":2} ]““ 格式。如何在查询的 WHERE 子句中使用这个值数组?

4

1 回答 1

0

如果您被约束并决心坚持使用字符串输入,我认为调用Split会起作用。但是,如果您将其从作为字符串引入更改为仅引入模型,则会容易得多。您是否尝试过类似的方法:

  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;
}
于 2012-11-19T21:57:19.667 回答