Então, eu estava procurando uma boa maneira no ASP.Net Core para criar alguns "controles" que se transformam em uma exibição. Até agora, descobri que há três opções e gostaria de obter algum feedback sobre elas.
ViewComponents: são como mini controladores e usam métodos como ações para renderizar a partir de uma página de navalha (exibição). Eu acredito que eles podem ter uma lógica independente, portanto não há dependência de nenhum modelo de exibição pai.
Pastas EditorTemplate / DisplayTemplate: elas existem em "Views / Shared /" e podem ser acessadas em uma visualização passando uma propriedade de modelo para elas (usando
DisplayFor()
ouEditorFor()
).@ Injetar para o ASP.Net Core: Permite injetar um tipo em uma exibição (não faço idéia se uma exibição parcial pode ser associada?).
Estou deixando de fora a capacidade de incluir visualizações parciais diretamente, pois não é minha intenção o sistema de controle que estou examinando.
Auxiliar de etiqueta - é possível injetar o contexto de exibição atual e criar controles a partir deles também.
Em um aplicativo ASP.NET MVC mais antigo, eu tinha alguns controles renderizados a partir dos modelos (# 2). No entanto, para o .Net Core, estou pensando em possivelmente usar ViewComponents (que parecem mais poderosos) para renderizar visualizações de barbear associadas (os controles basicamente envolvem apenas visualizações de barbear). No momento, vou experimentar a conversão para ViewComponents, mas gostaria de alguns conselhos sobre o assunto, obrigado.