単一のビューでは、3セットのページデータがあります。各モデルのために意味している私はASP.NET MVCで複数のデータセットをページングする方法
- オブジェクト
- ページインデックスを持つことになります
私の最初の考えは、たとえばたページサイズ:次に持つ
public class PagedModel<T> where T:class
{
public IList<T> Objects { get; set; }
public int ModelPageIndex { get; set; }
public int ModelPageSize { get; set; }
}
アクションに供給されるモデル:例えば、
public class TypesViewModel
{
public PagedModel<ObjectA> Types1 { get; set; }
public PagedModel<ObjectB> Typed2 { get; set; }
public PagedModel<ObjectC> Types3 { get; set; }
}
は、だから私は、その後、例えばIndexビューがタイプを継承している場合:
System.Web.Mvc.ViewPage<uk.co.andrewrea.forum.Web.Models.TypesViewModel>
を今すぐインデックスのための私の最初のaciton方法は単純です:
public ActionResult Index()
{
var forDisplayPurposes = new TypesViewModel();
return View(forDisplayPurposes);
}
私はその後、したい場合はページ、それはここで私が取るべき行動を決めるのに苦労しているところです。 Types2 PageModelの次のページを選択します。どのような行動は、私がアクションを複製するが、POST
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(TypesViewModel model)
{
return View(model);
}
でそれを使用する可能性が考えていたTypes2 PageModel
の2ページ目を示す新しいビューを返すために、このためのようになりますと、このAでありそれにアプローチする良い方法。私はいつもセッションがあることを理解していますが、そのようなことが現在どのように達成されているのか不思議に思っていました。最高の方法が相互に受け入れられていれば、物事。
単純に、ページングされた複数のモデルを含む1ページ。ラッパーモデルを使用して、それぞれのデータを永続化する方法。あなたはモデルに合格しなければならないし、その方法は、あなたがデータ、すなわちフォームポスト
最後には、私が見ているページのルートは
{controller}/{action}/{id}/{pageindex}/{pagesize}
すなわち、このことを考慮に入れる必要がありますが、どの方法1つのモデルのため、このアカウントのみ私は本当に私がラッパーモデルの中に持っているモデルの数のためにpagesizeとpageindexの値を繰り返すことを望んでいません。
ありがとうございます!
アンドリュー
質問は何ですか?どのようにルートを形成できますか? –
単一のページに複数のデータセットが含まれていて、別々にページングする必要がある場合(つまり、pageIndex1/pageSize1/pageIndex2/pageSize2などは不要です)、ルートとモデルを処理するための簡単な方法です。 –