2009-08-18 25 views
0
public ActionResult Index(int? page, FormCollection collection) 
{ 
    query = GetClients(collection); 
    var pagedView= new PaginatedList<Clients>(query, page ?? 0, pageSize); 
    return View(pagedView); 
} 

私はページ1になっています。ページ2のリンクをクリックすると、 'collection paramがnullでGetClientsがすべてのレコードを返すのではなく失敗します私は検索しています。asp.net mvcのページングc#

フォームのコレクションは、次のテキストボックスを持っている:まず名前、会社名は、

ジップ、セッション中に返され、その後、各ページングイベント中にクエリを保つセッションオブジェクトをチェックし、それが持っているかの方法がありますたIQueryableオブジェクトは、それから抽出し、他のコールGetClients(コレクション)

アップデート1:あなたのリンクはGETリクエストフォームデータであるされていないサブを発行しているためだ 私の更新されたコード

public ActionResult Index(int? page, FormCollection collection) 
    { 
     ClientSearch clientSearch = new ClientSearch(); 
     this.UpdateModel(clientSearch, new[] { "FName",Lane",Zip","Phone"}); 
     query = GetClients(clientSearch); 
     var pagedView= new PaginatedList<Clients>(query, page ?? 0, pageSize); 
     return View(pagedView); 
    } 

答えて

1

ページ2にリンクされています。ページ2のリンクでJavaScriptを使用してフォーム投稿を発行するか(推奨しません)、フォームデータをそのリンクに渡してクエリ文字列に表示させることができます。

+0

Hacked:悪いデザインでは、検索ページに20個の要素があり、クエリ文字列を構築するとメモリが正しく機能するかのように問題が発生します。クエリ文字列には文字数制限があります。セッションオブジェクトは、asp.net mvcで推奨されていませんか? –

関連する問題