सही ढंग से बाध्य नहीं करता है मेरे पास एक jQuery AJAX कॉल है जिसमें मैं उन उपयोगकर्ताओं की int आईडी भेजने की कोशिश कर रहा हूं जिन्हें चेकबॉक्स की तालिका से चुना जा सकता है।jQuery अजाक्स कॉल के साथ एमवीसी सही सरणी/संख्यात्मक
मुझे इस मामले में कोई समस्या है कि कोई उपयोगकर्ता नहीं चुना गया है। मैं एक खाली सरणी की अपेक्षा करता हूं लेकिन वास्तव में मुझे लंबाई = 1 की एक सरणी मिलती है, जिसमें उपयोगकर्ता आईडी 0 (यानी एक असाइन किए गए int मान) होते हैं।
निम्नलिखित स्निपेट समस्या reproduces
$('#test').click(function() {
var numbers = $('.noElements').map(function() {
// (selector does not match any elements, to demonstrate)
return 1;
}).get();
$.ajax({
url: '/MyController/Test',
type: "GET",
data: { numbers: numbers, count: numbers.length }
});
});
public ActionResult Test(IEnumerable<int> numbers, int count)
{
Assert(numbers.Count() == count);
return null;
}
जोर विफल रहता है क्योंकि numbers
List<int> { 0 }
है। इस तरह बाध्यकारी क्यों हो रहा है?
लिए "1" यानी numbers.Count() 1 है। लेकिन आदर्श रूप से जब कोई उपयोगकर्ता नहीं चुना जाता है, तो संख्याएं। गणना() आदर्श रूप से "0" होनी चाहिए। और उसके बाद जोर विफल रहा है। क्या ये सही है ? –
क्या आप अपनी क्रिया विधि में निम्नलिखित परिवर्तन आज़मा सकते हैं और देख सकते हैं कि यह काम करता है या नहीं। IList के साथ IENumerable बदलें। देखें कि यह काम करता है, यदि हां, तो मैं इस पोस्ट का विस्तृत उत्तर जोड़ूंगा। –
संख्या 1s की 0 लंबाई सरणी है। 'IENumerable' से 'IList' में बदलना कोई फर्क नहीं पड़ता। – fearofawhackplanet