私のカスタム Orchard モジュールでは、コントローラーに子アクションのみのメソッドがあり、ページングする必要がある表形式のデータを含むパーシャルを返します。ページャー シェイプをビュー モデルに追加したところ、正常に表示され、表示されると予想される 10 行が表示されます。クリックしてページ 2 に進み、URL が含まれているビューではなく子アクションの場合に問題が発生します。私の質問は、ChildActionOnly 属性を介してアクセスされるパーシャルに埋め込まれている場合、Orchard ページャー シェイプが使用する URL を変更できますか? Orchard 1.6 を使用しています。
質問する
643 次
1 に答える
1
解決しました。問題は、ページャー シェイプが ViewContext からルート情報を取得することです。私のテーマで Pager.cshtml をオーバーライドすることで、Pager シェイプで使用される RouteData を、Parent コンテキストがある場合はそれで更新することができました。親を持たないビューで Pager を使用すると、通常どおり ViewContext が使用されます。子アクションで使用される場合は、親ビュー コンテキストが使用されます。管理テーマから Pager.cshtml を自分のテーマに取り込み、次の行を変更しました。
var context = ViewContext.ParentActionViewContext ?? ViewContext;
ViewContext.RouteData = context.RouteData;
于 2012-12-13T10:35:53.833 に答える