ViewBag
प्रकार dynamic
की है, लेकिन आंतरिक रूप से एक System.Dynamic.ExpandoObject()
यह इस तरह घोषित किया जाता है:
dynamic ViewBag = new System.Dynamic.ExpandoObject();
है जो तुम क्यों कर सकते हैं:
ViewBag.Foo = "Bar";
एक नमूना विस्तारक ऑब्जेक्ट कोड:
public class ExpanderObject : DynamicObject, IDynamicMetaObjectProvider
{
public Dictionary<string, object> objectDictionary;
public ExpanderObject()
{
objectDictionary = new Dictionary<string, object>();
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
object val;
if (objectDictionary.TryGetValue(binder.Name, out val))
{
result = val;
return true;
}
result = null;
return false;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
try
{
objectDictionary[binder.Name] = value;
return true;
}
catch (Exception ex)
{
return false;
}
}
}
स्रोत
2013-02-20 17:15:53
अवधारणा नहीं करता है 'होना चाहिए वेबफॉर्म में टी की आवश्यकता नहीं है क्योंकि पृष्ठ के पास फ़ाइल के पीछे कोड में चर के लिए पहले से ही पहुंच है। जबकि एमवीसी में व्यू को व्यूबैग या मॉडल को देखने में पारित डेटा के अलावा नियंत्रक में किसी भी चीज़ तक पहुंच नहीं है। –