MVC của tôi (.NET) có một số giá trị không đổi thông qua trang web, chẳng hạn như số điện thoại, địa chỉ thực, địa chỉ email, v.v.
Tôi muốn lưu trữ giá trị này một lần, vì vậy các cập nhật trong tương lai sẽ dễ dàng hơn khi họ thay đổi chi tiết.
Để làm cho câu hỏi của tôi đơn giản hơn, tôi chỉ tập trung vào số điện thoại.
Câu hỏi của tôi là ở đâu và làm thế nào để lưu trữ số này và một vấn đề tôi gặp phải với quyết định của mình. Hiện tại, tôi đã chọn lưu trữ nó trong tệp Global.asax dưới dạng phương thức tĩnh, ví dụ:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//logic
}
public static string GetPhoneNumber()
{
return "012345 678 910";
}
}
Điều này hoạt động rất tốt, trong bộ điều khiển của tôi, tôi có thể thêm các tham chiếu đến phương thức này và gán nó cho ViewBag
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
}
Theo nhiều trang web, số điện thoại sẽ hiển thị ở đầu mỗi trang và do đó, đặt nó vào vị trí _Layout.cshtml
hợp lý.
Vấn đề tôi gặp phải là không có bộ điều khiển (không phải tôi biết) cho _Layout.cshtml và cách duy nhất tôi có thể vượt qua giá trị là cài đặt ViewBag.Phone cho mọi chế độ xem, 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();
}
Điều này là lộn xộn và có mùi nhưng tôi không biết làm thế nào tôi có thể cải thiện điều này.
Tôi có nên lưu trữ các biến toàn cầu của mình ở một nơi khác hay có cách tiếp cận tốt hơn cho việc này vì tôi chắc chắn đây là một vấn đề phổ biến.