[DataContract]
public class SearchCriteria
{
[DataMember]
public string CountryID { get; set; }
}
[DataContract]
public class CitySearchCriteria: SearchCriteria
{
[DataMember]
public string CityID { get; set; }
}
मैं अपने MVC नियंत्रक कार्रवाई में SearchCriteria का उदाहरण बनाकर रहा हूँ, और करने की कोशिश कर यह CitySearchCriteria में परिवर्तित करने के आधार वर्ग (डेटा अनुबंध) कास्ट करने में असमर्थ।व्युत्पन्न वर्ग
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.CountryID = "1";
CitySearchCriteria citySearchCriteria = searchCriteria as CitySearchCriteria;
उपर्युक्त कथन के बाद "सिटीशर्चक्रिटिया" ऑब्जेक्ट न्यूल मान दिखा रहा है। मैं उम्मीद कर रहा था कि यह दोनों संपत्तियों, कंट्रीआईडी और सिटीआईडी को देश आईडी के साथ, और सिटीआईडी रिक्त स्थान दिखाए ... लेकिन यह ऑब्जेक्ट को न्यूल पर सेट कर रहा है।
यहां समाधान क्या हो सकता है? क्या डेटाकंट्रैक्ट इस के साथ कुछ करने के लिए है?
टिप्पणियां सुझाव दे रहे हैं, तो आप प्राप्त करने के लिए एक आधार परिवर्तित नहीं कर सकते: , लेकिन वास्तव में, मैं मेरे विचार में सफलतापूर्वक किया है, इसकी सिर्फ नियंत्रक कार्रवाई में काम नहीं कर रहा:
CitySearchCriteria citySearchCriteria = (CitySearchCriteria)Model.SearchCriteria;
यह सफलतापूर्वक परिवर्तित किया जाता है, तो नियंत्रक कार्रवाई में काम करने वाली समान चीज़ क्यों नहीं?
आप बेस से व्युत्पन्न तक नहीं डाले जा सकते हैं। उलटा संभव है – noobob
कृपया – Nirman
प्रश्न में अंतिम दो अनुच्छेद देखें, फिर से मार्टिन का उत्तर (पहला उदाहरण) देखें। – noobob