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
        
  }

しかし、コントローラーでこれらの値を取得できません。ループステートメントを使用せずに、コントローラーでこれらの値の配列を取得するにはどうすればよいですか?

私の配列には整数値 (id) のみが含まれていますが、アクション メソッドのパラメーターにカーソルを置いたときのデバッグ中に値が ""[{\"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 に答える