1

返すItemsControllerインスタンスメソッドを持つコントローラーがありますGetRecent()IQueryable<Item>

_Recent.cshtmlアプリケーションのインデックス ページで、結果を使用して部分ビューをレンダリングしたいItemsController.GetRecent()

これを行うために、Index.cshtml に次のように記述しました。

~/Views/web.config に名前空間参照を追加したので、コントローラーの完全な名前空間を書き出す必要はありません。

    @{
        ViewBag.ItemsController = new ItemsController();
    }

    ...

    @Html.Partial("~/Views/Items/_Recent.cshtml",
                   ((ItemsController)ViewBag.ItemsController).GetRecentItems())

new ItemsController().GetRecentItems()直接渡すかGetRecentItems()、静的メソッドに変えることを考えましたが、これがどの方向に進むべきかわかりません。

これがコントローラーから部分ビューを構築する方法として受け入れられているかどうかを知りたいのですが、そうでない場合、これをより効率的に行うにはどうすればよいですか?

4

1 に答える 1