में व्यूबैग से परहेज करते हुए आप डायनामिक होने के साथ त्रुटि के जोखिम के कारण व्यूबैग से बचने के साथ कैसे निपटते हैं, लेकिन एक नया व्यूमोडेल पॉप्युलेट करने से बचें और इसे हर बार दृश्य में वापस पास करें। उदाहरण के लिए, मैं सामान्य रूप से व्यूबैग में भरने वाले सामान्य डेटा का पर्दाफाश करने के लिए अनुवर्ती रूप से परिवर्तन नहीं करना चाहता हूं।प्रभावी रूप से एएसपी.नेट एमवीसी
[HttpGet]
void Index()
{
return View();
}
[HttpGet]
void Index()
{
var messages = new MessageCollection();
messages.AddError("Uh oh!");
return View(messages);
}
कहाँ पाइप लाइन में मैं ViewBag की तरह एक संपत्ति कस्टम और दृढ़ता से टाइप किया है कि जोड़ने, लेकिन यह सुंदर ढंग से नियंत्रक में देखें अवगत कराया है और यह भी होता है। जब मैं एक विशिष्ट ViewModel हर समय की जरूरत नहीं है मैं नहीं बल्कि ऐसा करने चाहता हूँ ...
[HttpGet]
void Index()
{
Messages.AddError("Uh oh!");
return View();
}
और दृश्य पक्ष पर, @ ((IMessageCollection) ViewBag.Messages) .Errors आईडी के बजाय बजाय है @ संदेश जैसे कुछ। एंटर जो दृढ़ता से टाइप किए जाते हैं और हर जगह उपलब्ध होते हैं। इसके अलावा, मैं अपने रेजर व्यू के शीर्ष पर कोड कोड में इसे बाहर नहीं करना चाहता हूं।
वेबफॉर्म में, मैंने ऐसा कुछ किया होगा जैसे कि इसे एक मूल पृष्ठ डालें और फिर उपयोगकर्ता नियंत्रक हो जो आवश्यकतानुसार पृष्ठों पर छुपा या दिखाया जा सके। कंट्रोलर दृश्य से decoupled के साथ, मुझे यकीन नहीं है कि समान व्यवहार को दोहराने के लिए कैसे।
क्या यह संभव है या सबसे अच्छा डिजाइन दृष्टिकोण क्या है?
धन्यवाद, स्कॉट
आपके पास वास्तव में 2 विकल्प हैं: ViewBag और आपके मॉडल में एक समर्पित संपत्ति –