जब आप कोई नया मॉडल बाइंडिंग कॉन्टेक्स्ट बनाते हैं तो आपको यह त्रुटि मिल जाएगी और फिर मॉडल प्रकार टाइप, एमवीसी 2 पूर्वावलोकन 2 या उच्चतर में सेट करने का प्रयास करें।
internal static T Bind<T>(string prefix, FormCollection collection, ModelStateDictionary modelState) where T:class
{
var mbc = new ModelBindingContext()
{
ModelName = prefix,
ModelState = modelState,
ModelType = typeof(T),
ValueProvider = collection.ToValueProvider()
};
IModelBinder binder = new MyModelBinder();
var cc = new ControllerContext();
return binder.BindModel(cc, mbc) as T;
}
जब मैं MVC 2 पूर्वावलोकन 2 के लिए अद्यतन, मैं एक ही त्रुटि के रूप में आप का वर्णन किया गया है: उदाहरण के लिए, MVC के पुराने संस्करणों में कस्टम मॉडल बांधने की मशीन के लिए एक इकाई परीक्षण में, मैं निम्नलिखित की तरह कोड था । ठीक इस के लिए इस कोड को बदलने के लिए किया गया था:
internal static T Bind<T>(string prefix, FormCollection collection, ModelStateDictionary modelState) where T:class
{
var mbc = new ModelBindingContext()
{
ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(T)),
ModelName = prefix,
ModelState = modelState,
ValueProvider = collection.ToValueProvider()
};
IModelBinder binder = new MyModelBinder();
var cc = new ControllerContext();
return binder.BindModel(cc, mbc) as T;
}
ध्यान दें कि मैं ModelType का काम निकाल दिया है, और ModelMetadata को एक काम से बदल दिया। विजुअल स्टूडियो आपको बताएगा कि कोड की कौन सी पंक्ति वास्तव में इस त्रुटि को फेंक रही है।
स्रोत
2009-10-07 14:02:01
मैं इसे आजमाने की कोशिश कर रहा हूं, धन्यवाद - मैं आपके बिना थोड़ी देर के लिए यहां रहा होता। हालांकि यह एक बग है? क्या यह कुछ है जो हम गलत कर रहे हैं? – LiamB
बस को जोड़ने के लिए, मैं Dll (लाइन 47 DataAnnotationsModelBinder.cs) में त्रुटि 'var innerContext = नए ModelBindingContext() { मॉडल = propertyDescriptor.GetValue (bindingContext.Model), ModelName = fullPropertyKey, ModelState = पाया bindingContext.ModelState, ModelType = propertyDescriptor.PropertyType, ValueProvider = bindingContext.ValueProvider }; ' – LiamB
आपका कोड completley भिन्न वस्तुओं का उपयोग करने लगता है? – LiamB