2010-03-22 14 views
11

चेकबॉक्स को निकाला जाने वाला क्षेत्र शून्य है।चेकबॉक्स त्रुटि क्यों है रनटाइम त्रुटि

मेरे विचार पर मैं निम्नलिखित त्रुटि मिलती है: डेटाबेस डिजाइन बदलने के लिए बिना

Cannot implicitly convert type 'bool?' to 'bool'

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %> 

मैं इसे कैसे ठीक करूं?

उत्तर

16

एक्सक्लूसिव न्यूलबल नहीं हो सकता है, अभिव्यक्ति का मूल्यांकन करते समय व्यूइंजिन को कोई समझ नहीं आता है। इसे चेकबॉक्स को चेक या चेक करना होगा और true या false मान के साथ प्रतिक्रिया देना होगा। आपके मॉडल को bool मान होने की आवश्यकता है लेकिन इसका मतलब यह नहीं है कि आपके डेटाबेस को यह जानना है। आपको डेटाबेस और मॉडल के बीच कहीं भी अनुवाद करना है, उदाहरण के लिए। Model.Exclusive = DAO.Exclusive ?? false

यह जानने के बिना कि आपके डेटा स्कीमा में आप किस नल का प्रतिनिधित्व करते हैं या आप अपनी मॉडल ऑब्जेक्ट कैसे उत्पन्न करते हैं, आपको इससे कहीं अधिक जानकारी देना मुश्किल है।

संपादित करें: इस परीक्षण नहीं किया है, लेकिन आप

public bool NoNullExclusive 
{ 
    get { return Exclusive ?? false; } 
    set { Exclusive = value; } 
} 

के रूप में सरल कुछ के साथ दूर हो जाते हैं और साथ

<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %> 
+0

मैं संपत्ति आप सुझाव बनाई

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %> 

की जगह हो सकता है आंशिक वर्ग में। क्या यह हेरफेर बनाने के लिए सबसे अच्छी जगह होगी? – Picflight

+0

यदि आपकी उत्पाद कक्षा स्वत: जेनरेट की गई है तो हाँ। यदि नहीं तो क्लास में या डेटा एक्सेस ऑब्जेक्ट से मैपिंग में मॉडल में। – pdr

संबंधित मुद्दे