व्यूडाटा और व्यूबैग आपको नियंत्रक से पारित किए गए किसी भी डेटा तक पहुंचने की अनुमति देता है।व्यूबैग, व्यूडाटा, टेम्पडडाटा, सत्र - उन्हें कैसे और कब उपयोग करें?
उन दोनों के बीच मुख्य अंतर यह है कि आप डेटा तक पहुंच रहे हैं। व्यूबैग में आप स्ट्रिंग के रूप में स्ट्रिंग का उपयोग कर डेटा तक पहुंच रहे हैं - व्यूबैग ["संख्याएं]] व्यूडेटा में आप गुणों का उपयोग कर डेटा तक पहुंच रहे हैं - ViewData.numbers।
ViewData उदाहरण
नियंत्रक
var Numbers = new List<int> { 1, 2, 3 };
ViewData["numbers"] = Numbers;
देखें
<ul>
@foreach (var number in (List<int>)ViewData["numbers"])
{
<li>@number</li>
}
</ul>
ViewBag उदाहरण
नियंत्रक
var Numbers = new List<int> { 1, 2, 3 };
ViewBag.numbers = Numbers;
देखें
<ul>
@foreach (var number in ViewBag.numbers)
{
<li>@number</li>
}
</ul>
सत्र एक और बहुत उपयोगी वस्तु है कि किसी भी जानकारी को रखा जाता है।
उदाहरण के लिए जब उपयोगकर्ता सिस्टम में लॉग इन होता है तो आप उसका प्राधिकरण स्तर रखना चाहते हैं।
// GetUserAuthorizationLevel - some method that returns int value for user authorization level.
Session["AuthorizationLevel"] = GetUserAuthorizationLevel(userID);
यह जानकारी जब तक उपयोगकर्ता सत्र के सक्रिय सत्र में संग्रहीत किया जाएगा।
public ActionResult LevelAccess()
{
if (Session["AuthorizationLevel"].Equals(1))
{
return View("Level1");
}
if (Session["AuthorizationLevel"].Equals(2))
{
return View("Level2");
}
return View("AccessDenied");
}
TempData बहुत ViewData और ViewBag हालांकि यह केवल का डेटा होगा के समान है: कार्रवाई के अंदर नियंत्रक में
<system.web>
<sessionState mode="InProc" timeout="30"/>
तो फिर: यह Web.config फ़ाइल में बदला जा सकता है एक अनुरोध।
नियंत्रक
// आप नए ग्राहक जोड़ने के लिए एक विधि बनाया। जब आप नियंत्रक को देखें से कुछ जानकारी पास करना चाहते हैं
TempData["ClientAdded"] = "Client has been added";
देखें
@if (TempData["ClientAdded"] != null)
{
<h3>@TempData["ClientAdded"] </h3>
}
TempData उपयोगी है। उदाहरण के लिए जब आप अनुरोध किया गया था तो आप समय पकड़ना चाहते हैं।
देखें
@{
TempData["DateOfViewWasAccessed"] = DateTime.Now;
}
नियंत्रक
if (TempData["DateOfViewWasAccessed"] != null)
{
DateTime time = DateTime.Parse(TempData["DateOfViewWasAccessed"].ToString());
}
इस पर अधिक जानकारी के लिए धन्यवाद! यह ज्यादातर लोगों के लिए वास्तव में उपयोगी होना चाहिए। –
क्या कोई प्रश्न है या यह ब्लॉग पोस्ट है? अपने प्रश्न का उत्तर देना ठीक है लेकिन इसे प्रश्न के हिस्से के रूप में नहीं, जवाब के रूप में किया जाना चाहिए। सबसे महत्वपूर्ण बात यह है कि, इस सामग्री को पहले ही कवर कर लिया गया है, जैसे कि [व्यूडाटा, व्यूबैग, सत्र, टेम्पडडाटा के लिए सही समय क्या है] (http://stackoverflow.com/questions/12676924/what-is-the-right-time -for-viewdata-viewbag-session-tempdata) –
मुझे याद होगा कि भविष्य के लिए और इसके लिए खेद है। मैंने कुछ और उदाहरण देने की कोशिश की और शायद कुछ और अनुभवी डेवलपर्स भी अपने अनुभव साझा करते हैं। –