Miglior approccio per avere una vista condivisa

0

Ho un sito web in cui voglio avere una vista parziale sulla pagina che contiene un servizio Singleton.

Sto cercando di farlo con Razor Pages, e ho provato le Viste Parziali e ViewComponents, ma non ho ottenuto l'esperienza desiderata, probabilmente perché non sto implementando correttamente.

Ecco cosa mi piacerebbe realizzare.

  1. Servizio Singleton condiviso tra la vista parziale e tutte le altre viste nell'app (questo pannello di accesso in cui ogni pagina deve accedere al nome utente fornito dal servizio.
  2. Basato sullo stato del servizio, eseguendo un processo comune (logica aziendale personalizzata) su ciascuna vista (se l'utente ha un determinato ruolo, modifica l'interfaccia utente e il registro in modo diverso)
  3. Non dover cablare i costruttori DI su ogni vista (posso usare una pagemodel di base)

Posso fornire un codice se necessario, ma volevo vedere se quello che sto cercando di fare è permesso con Razor Pages.

    
posta Isaac Levin 07.03.2018 - 11:54
fonte

1 risposta

1

Sembra che tu debba iniettare il servizio richiesto globalmente nel file _ViewImports.cshtml principale (di solito sotto /Views o /Pages cartella) come:

@using Microsoft.AspNetCore.Hosting
@inject IHostingEnvironment Environment

Puoi quindi chiamarlo in qualsiasi vista o vista parziale come questa:

@if (Environment.IsDevelopment())
{
    <h4>Yep, this is development environment!</h4>
}

Personalmente, utilizzo sempre questa funzione per il servizio IViewLocalizer .

    
risposta data 10.12.2018 - 11:39
fonte

Leggi altre domande sui tag