2012-08-14 6 views
0

asp.net mvc3을 사용하고 있습니다.내 쿼리의 where 절에서 값 배열을 사용하는 방법

 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 

    } 

하지만 난에 그 값을 검색 할 수 없습니다입니다 controller.can u 루핑 문을 사용하여 내 컨트롤러에서 이러한 값 배열을 검색하는 방법을 알려줍니다.

내 배열은 값이 "\"[{\\ "id \\": 1}, {\\ " \ "id \\": 2}] \ ""format.can은 내 쿼리의 where 절에서이 값 배열을 사용하는 방법을 알려줍니다.

+0

공공 ActionResult의 SearchDetails (문자열 모델) {} 동안 디버깅, 나는 "\"[{\\\ "ID \\\"같은 값을 얻고 모델에 커서를 할 때 : 1 "id \\\": 2}] \ "".이 컨트롤러의 값 배열을 검색하고 쿼리의 내 where 절에 해당 값을 사용하려고합니다. – steve

+0

대신 값을 배열로 가져올 수 있는지 묻는 중입니까? 문자열의? – Mohayemin

+0

실제로 내 배열은 내가 마지막 post.I에서 언급 한 것처럼 위의 형식으로 표시되는 두 값 {1,2}을 포함하고 있습니다. 내 컨트롤러의 배열에서 각 값을 검색하고 람다 식의 값을 비교하고 싶습니다. – steve

답변

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; 
} 
관련 문제