2012-03-23 9 views
5

वर्तमान में, मेरे पास रेजर व्यू इंजन का उपयोग कर एक एमवीसी 3 ऐप है। मेरे पास अविभाज्य सत्यापन सक्षम है। समस्या यह है कि किसी कारण से, पृष्ठ लोड पर, मेरा संपादन दृश्य आवश्यक फ़ील्ड के लिए त्रुटियों को प्रदर्शित कर रहा है (भले ही फ़ील्ड्स का मान हो)। क्या कोई और इसमें भाग गया है? इसे हल करने के लिए कोई सुझाव? धन्यवाद। समस्या के साथपेज लोड पर सत्यापन फायरिंग

नमूना फील्ड: मॉडल पर

<div class="full"> 
      <label>Description:</label> 
      @Html.EditorFor(x=>x.Description, new{@class="super-textarea"}) 
      @Html.ValidationMessageFor(x => x.Description) 

     </div> 

डाटा एनोटेशन

 [Required, DataType(DataType.MultilineText)] 
    public virtual string Description { get; set; } 

WebConfig सक्षम सेटिंग्स:

 <add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

और निश्चित रूप से उचित jQuery फ़ाइलें ....

+0

आपका कोड निकालने एक बहुत – AFD

+0

मदद मिलेगी तो ... यह वास्तव में एक होना प्रतीत नहीं होता है अविभाज्य सत्यापन के साथ समस्या, बल्कि पेज लोड से पहले मेरा मॉडल राज्य अमान्य हो रहा है .... – user1287132

उत्तर

10

ठीक है। समस्या मिली मॉडल बाध्यकारी प्रयास करने के प्रयास के कारण सत्यापन हो रहा था। ऐसा इसलिए हो रहा था क्योंकि हमारा गेट विधि इस तरह दिखता है।

[HttpGet, RequestedObjectFilter] 
    public virtual ViewResult Edit(TKey id, T requestedObject) 
    { 

     return View(requestedObject); 
    } 

नेट MVC की एक विशेषता यह है कि कभी भी एक संदर्भ मूल्य एक ViewResult की विधि हस्ताक्षर में पैरामीटर के रूप पारित हो जाता है है, ModelBinding शुरू हो रहा है, जो बारी में मान्यता बंद सक्रिय करता है। जिस कारण से हम अपनी विधि में ऑब्जेक्ट में गुज़र रहे थे, हमारे अनुरोधित ऑब्जेक्टफिल्टर के कारण था जो संबंधित इकाई को हमारे सारणी भंडार से लाएगा, और इसे एक्शन पैरामीटर संपत्ति के माध्यम से इस विधि में पास कर देगा। हमने इसके अनुरोध किए गए ऑब्जेक्टफिल्टर को इसके बजाय व्यूमोडेल सेट करने के लिए दोबारा तैयार किया, जिससे हमें विधि से पैरामीटर को हटाने की इजाजत मिली, इस प्रकार समस्या को हल किया गया। अब हमारी विधि इस प्रकार है:

 [HttpGet, RequestedObjectFilter] 
    public virtual ViewResult Edit(TKey id) 
    { 

     return View(); 
    } 
+0

बढ़िया! इससे मुझे मदद मिली क्योंकि मुझे एक ही समस्या थी, धन्यवाद। –

14

तुम भी ModelState से त्रुटियों को साफ़ कर सकते

ModelState.Clear(); 
+0

इस पोस्ट को देखने सहित विभिन्न चीजों की कोशिश करने के कुछ घंटों के बाद, लेकिन यह नहीं सोच रहा कि यह लागू था, मैं गलत था। यह मेरी समस्या तय है। – Caverman