मॉडल पर है। मुझे उस संपत्ति को सेट करने के लिए OnModelUpdated
ईवेंट का उपयोग करके समाधान मिला। उसके बाद
public class CustomModelBinder: DefaultModelBinder
{
protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
controllerContext.Controller.ViewData.Model = bindingContext.Model;
base.OnModelUpdated(controllerContext, bindingContext);
}
}
आप Global.asax में Application_Start()
अनुभाग में अपने नए मॉडल बांधने की मशीन के लिए डिफ़ॉल्ट बांधने की मशीन स्थापित करने की आवश्यकता:
मैं मॉडल बांधने की मशीन है
ModelBinders.Binders.DefaultBinder = new CustomModelBinder();
अंत में आप तक पहुँच सकते हैं अपने Model
एक ActionFilterAttribute
में:
public class TraceLog : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//filterContext.Controller.ViewData.Model now isn't null
base.OnActionExecuted(filterContext);
}
}
स्रोत
2009-05-16 16:56:01
यह हमेशा शून्य है :( – Korayem
@ कोरायम - इस बात पर निर्भर करता है कि आप कितनी जल्दी कोशिश करते हैं और इसका उपयोग करते हैं। यदि आप नियंत्रक कार्रवाई निष्पादित करने के बाद इसे प्राप्त करते हैं तो यह व्यूमोडेल का एक उदाहरण होना चाहिए। – JBeckton
यह सभी तरीकों से मेरे लिए शून्य है (ऑनएक्शन एक्सक्लूसिंग, ऑनएक्शन एक्स्क्टेड, ऑनरसल्ट एक्सक्लूसिंग, ऑनरसल्ट एक्स्क्टेड) –