MVC (.NET) sitemde telefon numarası, fiziksel adres, e-posta adresi vb.Gibi bazı sabit değerler var.
Bu değeri bir kez saklamak istiyorum, bu nedenle gelecekteki güncellemeler ayrıntılarını değiştirdiklerinde daha kolay.
Sorumu kolaylaştırmak için yalnızca telefon numarasına odaklandım.
Sorum, bu numarayı nerede ve nasıl saklayacağım ve kararımda karşılaştığım bir problem. Şu anda, statik yöntem olarak Global.asax dosyasında saklamayı seçtim, örn.
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//logic
}
public static string GetPhoneNumber()
{
return "012345 678 910";
}
}
Bu çok iyi çalışıyor, kontrol cihazımda bu yönteme referanslar ekleyebilir ve bir ViewBag'e atayabilirim
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
}
Birçok siteye göre, telefon numarası her sayfanın üst kısmında görünür olacak ve bu şekilde _Layout.cshtml
, mantıksal olarak yerleştirilecektir .
Sahip olduğum sorun _Layout.cshtml için hiçbir denetleyici (bilmiyorum) yoktur ve değeri iletebilmemin tek yolu her görünüm, EG için ayarlanmış bir ViewBag.Phone olmasıdır.
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();
}
Bu dağınık ve kötü kokulu ama bunu nasıl geliştirebileceğim hakkında hiçbir fikrim yok.
Küresel değişkenlerimi farklı bir yerde mi saklamalıyım yoksa bunun daha iyi bir yaklaşım var mıdır, çünkü bunun ortak bir sorun olduğuna eminim.