Mi MVC (.NET) tiene algunos valores constantes en todo el sitio, como el número de teléfono, la dirección física, la dirección de correo electrónico, etc.
Me gustaría almacenar este valor una vez, para que las futuras actualizaciones sean más fáciles cuando cambien sus detalles.
Para simplificar mi pregunta, solo me he centrado en el número de teléfono.
Mi pregunta es dónde y cómo almacenar este número y un problema que enfrento con mi decisión. Por el momento, he elegido almacenarlo en el archivo Global.asax como un método estático, por ejemplo
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//logic
}
public static string GetPhoneNumber()
{
return "012345 678 910";
}
}
Esto funciona muy bien, en mi controlador puedo agregar referencias a este método y asignarlo a una ViewBag
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
}
Según muchos sitios, el número de teléfono será visible en la parte superior de cada página y, como tal, colocarlo en el _Layout.cshtml
es lógico.
El problema que tengo es que no hay un controlador (no lo sé) para _Layout.cshtml y la única forma en que puedo pasar el valor es tener un ViewBag.Phone configurado para cada 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();
}
Esto es desordenado y maloliente, pero no tengo idea de cómo puedo mejorar esto.
¿Debería almacenar mis variables globales en un lugar diferente o hay un mejor enfoque para esto, ya que estoy seguro de que este es un problema común?