Il mio MVC (.NET) ha alcuni valori costanti attraverso il sito, come il numero di telefono, l'indirizzo fisico, l'indirizzo email ecc.
Vorrei memorizzare questo valore una volta, quindi gli aggiornamenti futuri sono più facili quando cambiano i loro dettagli.
Per semplificare la mia domanda, mi sono concentrato solo sul numero di telefono.
La mia domanda è dove e come memorizzare questo numero e un problema che sto affrontando con la mia decisione. Al momento, ho scelto di memorizzarlo nel file Global.asax come metodo statico, ad esempio
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//logic
}
public static string GetPhoneNumber()
{
return "012345 678 910";
}
}
Funziona molto bene, nel mio controller posso aggiungere riferimenti a questo metodo e assegnarlo a un ViewBag
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
}
Come per molti siti, il numero di telefono sarà visibile nella parte superiore di ogni pagina e, in quanto tale, posizionarlo in _Layout.cshtml
è logico.
Il problema che ho è che non c'è nessun controller (non lo so) per il _Layout.cshtml e l'unico modo per passare il valore è avere un ViewBag.Phone impostato per ogni vista, EG
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
return View();
}
public ActionResult About()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
return View();
}
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
return View();
}
Questo è disordinato e puzzolente, ma non ho idea di come posso migliorarlo.
Devo memorizzare le mie variabili globali in un posto diverso o c'è un approccio migliore per questo perché sono sicuro che questo è un problema comune.