2010-04-19 15 views
5

के साथ एएसपी.नेट एमवीसी क्लाइंट सत्यापन एमवीसी 2.0 फ्रेमवर्क (Html.ValidationMessageFor() और Html.EnableClientValidation() के साथ) के क्लाइंट सत्यापन समारोह का उपयोग कर रहा हूं।आंशिक विचारों और अजाक्स

सब कुछ अच्छा है, जब मैं एक साधारण रूप में सत्यापन का उपयोग करता हूं।

लेकिन

$.get('PathToMyForm', function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

ग्राहक सत्यापन काम नहीं करता है जब मैं jQuery अजाक्स के माध्यम से इस फार्म मिलता है। क्यूं कर?

+0

* यह कैसे काम नहीं करता है? नए फ़ील्ड मान्य नहीं हैं? कुछ भी मान्य नहीं है? सत्यापन कोड कहां है? आंशिक में? युक्त पेज में? थोड़ा और कोड और स्पष्टीकरण सहायक होगा। – tvanfosson

+0

tvanfosson, मेरे पास [आवश्यक] विशेषता के साथ मॉडल है। सामान्य परिदृश्य में (AJAX के बिना, केवल Html.RenderPartial) क्लाइंट सत्यापन ठीक काम करता है - अगर मैं टेक्स्टबॉक्स में खाली स्ट्रिंग टाइप करता हूं और किसी अन्य टेक्स्टबॉक्स पर फ़ोकस करता हूं, तो मुझे सत्यापन संदेश मिलता है। लेकिन AJAX के साथ - मुझे यह संदेश नहीं मिला है। – griZZZly8

उत्तर

0

मुझे एमवीसी सत्यापन और आंशिक विचारों के साथ भी समस्याएं आई हैं। मैंने बिल्ड-इन क्लाइंट-सत्यापन के बजाय jquery.validate.js का उपयोग कर इसे हल किया। आप इसे आजमा सकते हैं।

+0

jQuery.validate मेरा मॉडल नहीं देख सकता है। मैं मॉडल कक्षाओं में सत्यापन नियमों को परिभाषित करना चाहता हूं। – griZZZly8

+0

आप ऐसा कर सकते हैं। एएसपी.नेट एमवीसी फ्यूचर्स की जांच करें http://aspnet.codeplex.com/releases/view/41742 –

0

शायद jQuery अजाक्स प्रतिक्रिया पर जावास्क्रिप्ट कोड का मूल्यांकन नहीं कर रहा है?

jQuery documentation से, अजाक्स फोन पर डेटाप्रकार संपत्ति का उपयोग कर प्रयास करें

$.get('PathToMyForm', {dataType 'html'}, function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

:

डेटाप्रकार डिफ़ॉल्ट: बुद्धिमान अनुमान (xml, json, स्क्रिप्ट, या एचटीएमएल)

उस डेटा का प्रकार जिसे आप सर्वर से वापस उम्मीद कर रहे हैं। यदि कोई भी निर्दिष्ट नहीं किया गया है, तो jQuery बुद्धिमानी से परिणाम प्राप्त करने का प्रयास करेगा, प्रतिक्रिया के एमआईएम प्रकार के आधार पर (एक एक्सएमएल एमआईएम प्रकार एक्सएमएल उत्पन्न करेगा, 1.4 जेएसओएन में एक जावास्क्रिप्ट ऑब्जेक्ट मिलेगा, 1.4 स्क्रिप्ट में स्क्रिप्ट निष्पादित करेगा, और कुछ भी और एक स्ट्रिंग के रूप में वापस किया जाएगा)।

+0

राफेल म्यूएलर, आपके उत्तर के लिए धन्यवाद, लेकिन यह मेरी मदद नहीं करता है। मैंने अपने आंशिक दृश्य में अलर्ट ('स्क्रिप्ट परीक्षण') शामिल किया है - यह काम करता है। लेकिन मुझे अभी भी सत्यापन के साथ समस्या है। – griZZZly8

8

आप (विशेष रूप से MVC के साथ) jquery.validate उपयोग कर रहे हैं और आप AJAX के माध्यम से पृष्ठों को लोड कर रहे हैं, यदि आप पृष्ठ लोड करने के बाद निम्नलिखित कॉल करने के लिए की जरूरत है:

$.validator.unobtrusive.parse($("#validation")); 

मेरे ब्लॉग पोस्ट पर अधिक देखें: Using Unobtrusive jQuery Validation with Forms Loaded via AJAX

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