Мій MVC (.NET) має постійні значення через сайт, такі як номер телефону, фізична адреса, електронна адреса тощо.
Я хотів би зберегти це значення один раз, тому майбутні оновлення простіше, коли вони змінять свої дані.
Щоб полегшити моє запитання, я зосередився лише на номері телефону.
Моє запитання - де і як зберігати цей номер і проблема, з якою я стикаюсь із своїм рішенням. На даний момент я вирішив зберігати його у файлі Global.asax як статичний метод, наприклад
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//logic
}
public static string GetPhoneNumber()
{
return "012345 678 910";
}
}
Це працює дуже добре, у своєму контролері я можу додати посилання на цей метод і призначити його ViewBag
public ActionResult Contact()
{
ViewBag.Phone = MvcApplication.GetPhoneNumber();
}
Як і для багатьох сайтів, номер телефону буде видно вгорі кожної сторінки, і таким чином розміщення його в _Layout.cshtml
логічному значенні.
Проблема в тому, що для _Layout.cshtml немає контролера (не те, що я знаю), і єдиний спосіб передати значення - це встановити ViewBag.Phone для кожного перегляду, 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();
}
Це безладний і смердючий, але я поняття не маю, як це можна покращити.
Чи потрібно зберігати мої глобальні змінні в іншому місці чи є кращий підхід до цього, оскільки я впевнений, що це загальна проблема.