2017-01-09 7 views
1

以下のように、コントローラにビューモデルを渡す必要があります。 SearchModeである場合MVC viewModelとページされた結果

public class SearchCriteria 
{ 
    public SearchData searchData { get; set; } 
    public SearchMode searchMode { get; set; } 
} 

[HttpPost] 
public JsonResult GetSearchResultsJson(SearchCriteria searchCriteria) 
{ 
} 

SearchCriteriaは次のように定義され

public class Searchmode 
{ 
    public int? mode { get; set; } 
    public int? pageNumber { get; set; } 
    public int? pageSize { get; set; } 
} 

そしてSearchDataは、検索するためにあるかの項目を定義61の特性を有しています。

public class SearchData 
{ 
    public string name {get;set;} 
    .... 
    public int age {get;set;} 
} 

jQueryを使用してオブジェクトを作成し、コントローラに渡します。 .NetはこのオブジェクトをSearchCriteria型のオブジェクトに変換します。すべてが動作していますが、PagedListPagerコントロールがレンダリングされるとき、オブジェクトを作成するために使用されたjQueryをどのようにエミュレートしますか?

私は、次のコードを持っている瞬間

@Html.PagedListPager(Model.DocumentsPaged, pageNumber => Url.Action("GetSearchResultsJson", XXXXXXXXXXXXXXXXXXXXXXX),pLRO) 

そしてXXXXXXXXXXXXXXXXXXXXXXXとしてマークされたビットに入れているかわかりません。

jQueryでは、SerachModeオブジェクトのpageNumberプロパティを変更できますが、これは正しいページを提供しますが、Html.PagedListPagerヘルパー内で更新する必要があるのはこのプロパティです。

+0

あなたが生成する必要があります'Url.Action(" GetSearchResultsJson "、新しい{searchData.name = xxx、searchData.age = xxx、....})'という各プロパティのルート(クエリ文字列)値。これらのプロパティをすべて1つのクラスにまとめると、モデルに 'SearchCriteria Criteria'というプロパティが含まれていると仮定すると、' Url.Action( "GetSearchResultsJson"、Model.Criteria)になります。しかし、実際に61のプロパティ( 'searchMode'に3を加えたもの)があると、クエリ文字列の制限を超えて例外がスローされる可能性が高くなります –

答えて

2

hereで説明したように、ページを渡すことができます。

サンプルコードをクローンして少し演奏することをお勧めします。 おそらくサーバー側を紛失した場合に備えて、検索パラメータを追加する必要があります。

+0

ありがとうございます。 – gilesrpa

+0

まだスタックしていれば、それ以上のポインタは喜んで受信されます。ところで – gilesrpa

+0

、SearchCriteriaをpagenumberパラメータで拡張する必要があります。 – BinaryFr3ak

0

GetSearchResultsJson(SearchCriteria searchCriteria)には[HttpPost]と表示されているため、URLパラメータを空白のままにしておき、Url.Action("GetSearchResultsJson")を使用してください。 POSTの検索パラメータはURLの代わりにリクエストの本文に入ります。

Html.PagedListPager方法は、「ページ」パラメータ(あなたがPagedList.Mvc NuGetパッケージからメソッドを使用していると仮定)を想定しているため、あなたはこのようなあなたの検索機能を記述することもできます。

GetSearchResultsJson(int page, int SearchCriteria searchCriteria) 
関連する問題