そのため、ASP.Net Coreでビューにレンダリングする「コントロール」を作成するための良い方法を探していました。これまでのところ、3つのオプションがあることがわかりました。
ViewComponents:これらはミニコントローラーのようなもので、かみそりのページ(ビュー)からレンダリングするアクションのようなメソッドを使用します。私はそれらが自己完結型ロジックを持つことができるので、どの親ビューモデルにも依存しません。
EditorTemplate / DisplayTemplateフォルダー:これらは「Views / Shared /」の下に存在し、モデルプロパティをそれらに(
DisplayFor()
またはを使用してEditorFor()
)渡すことでビューにプルできます。ASP.Net Coreの@inject:ビューに型を挿入できます(部分的なビューを関連付けることができるかどうかわかりません)。
部分的なビューを直接含める機能は、移植する制御システムの意図ではないため、省略します。
タグヘルパー-現在のビューコンテキストを挿入して、これらからコントロールを構築することもできます。
古いASP.NET MVCアプリでは、テンプレートからレンダリングされるいくつかのコントロールがありました(#2)。ただし、.Net Coreの場合、関連するかみそりビュー(コントロールは基本的にかみそりビューをラップするだけ)をレンダリングするために、代わりにViewComponents(より強力に見える)を使用することを考えています。とりあえず、ViewComponentsへの変換を試すつもりですが、この件についてのアドバイスがありがたいです。ありがとう。