2011-04-18 8 views
0

으로 변환하는 방법 ASP.NET MVC 응용 프로그램에서 페이지 매김 기능을 사용하여 고급 검색을 구현하려고합니다. QueryString에 검색 필터 매개 변수를 전달하려고합니다. 그러나 검색 필터 유형이 조금 복잡대로viewdata의 복합 형식을 쿼리 문자열

도움 나를 여기이/

를 구현 제대로 변환되지 않습니다 여기 내 행동

public ActionResult AdSearch(SearchFilter SearchTerm, int index = 0, int perPage = 1) 
{ 
    var customers = _repository.Search(SearchTerm, new SelectSpec(perPage, index * perPage)); 
    ViewData["SearchTerm"] = SearchTerm; 
    return View("ExpertSearchResult", customers); 
} 

있는 검색 필터

public class SearchFilter 
{ 
    public IList<string> Countries { get; set; } 
    public IList<string> Languages { get; set; } 
    public IList<string> Industries { get; set; } 
    public IList<string> Expertises { get; set; }   
} 
에게 있습니다

그리고 다음은 페이지 링크를 생성하는 코드입니다.

var searchCriteria = new RouteValueDictionary(ViewData["SearchTerm"]);searchCriteria.Add("perPage", 1);searchCriteria.Add("index", 1);return Html.ActionLink("First", "Results", searchCriteria) 

답변

0

가장 적합한 솔루션은 Json.NET입니다. JSON을 사용하면 자바 스크립트와 C# 코드 사이에서 복잡한 유형을 쉽게 직렬화 및 비 직렬화 할 수 있습니다.

자바 스크립트 (SearchFilter)와 C#으로 개체를 만들면됩니다. json 속성을 클래스와 속성에 배치하십시오. json을 사용하여 자바 스크립트에서 객체를 직렬화하고 컨트롤러 액션에 전달합니다. 실습에서 직렬화 된 값을 얻기위한 문자열 매개 변수가 있어야하고 json에게 필요한 객체에 매개 변수를 deserialize하도록 요청해야합니다.

이것은 일반적인 용도 중 하나입니다. Json.NET