내 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에 대한 컨트롤러가 없다는 것입니다 (알지 못합니다). 값을 전달할 수있는 유일한 방법은 모든보기, EG에 대해 ViewBag.Phone을 설정하는 것입니다.
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();
}
이것은 지저분하고 냄새가 있지만 어떻게 이것을 개선 할 수 있는지 전혀 모른다.
전역 변수를 다른 장소에 저장해야하거나 이것이 일반적인 문제라고 확신하기 때문에 더 나은 접근 방법이 있습니까?