मेरा 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();
}
यह गड़बड़ और बदबूदार है लेकिन मुझे नहीं पता कि मैं इसे कैसे सुधार सकता हूं।
क्या मुझे अपने वैश्विक चर को एक अलग स्थान पर संग्रहीत करना चाहिए या क्या इसके लिए एक बेहतर दृष्टिकोण है क्योंकि मुझे यकीन है कि यह एक आम समस्या है।