दिलचस्प पोस्ट
jQuery यूआई क्रमबद्ध, फिर एक डेटाबेस में आदेश लिखें एंड्रॉइड: क्लिक करने योग्यस्पैन में क्लिक करने योग्य TextView दूसरे के ऊपर दो बटन एक के साथ एक रिलेटिव लेआउट प्रोग्रामेटिक रूप से कैसे बनाऊँ? अंतिम डाक कोड और ज़िप रीगेक्स क्या है? आयात com.google.android.gms का समाधान नहीं किया जा सकता एसक्यूएल सम्मिलित क्वेरी सी # का उपयोग कर TortoiseGit वास्तव में गिट बहुत TortoiseSVN तरह उपयोग करने के लिए आसान बना देता है? डिव पर टैब अनुक्रमणिका HTML5 में फ्रेम का उपयोग करने का कोई भी तरीका है? तत्व से खिड़की तक "बुदबुदाती" स्क्रॉल को रोकने के लिए स्कला: इम्प्लिकेट पैरामीटर रिजॉल्यूशन वरीयता चयनित रेडियो पर jQuery विकल्प चुनें विकल्प (सभी ब्राउज़रों के लिए समर्थन की आवश्यकता है) एंड्रॉइड ऐप मेमोरी के मुद्दों से बाहर – सब कुछ करने की कोशिश की और फिर भी नुकसान पर exit.c:। पाठ + 0x18): आर्म-नॉन-एबी-जीसीसी का उपयोग करते समय `_exit 'का अपरिभाषित संदर्भ डिवाइस का पता लगाने के लिए एंड्रॉइड फोन या एंड्रॉइड टैबलेट क्या है?

मैं एएसपी.नेट एमवीसी नियंत्रक को एक फार्म के बिना स्ट्रिंग की सरणी कैसे पोस्ट कर सकता हूं?

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

मैं चयनित तत्वों के एड्स के साथ एक सरणी प्राप्त करने में कामयाब रहा, और अब मैं उसे पोस्ट करना चाहता हूं। एक तरह से मैं यह कर सकता हूं कि मेरे पन्ने में छिपे हुए मूल्य के साथ एक डमी फ़ॉर्म होना चाहिए, और उसके बाद चयनित वस्तुओं के साथ छिपी हुई मूल्य सेट करना और उस फॉर्म को पोस्ट करना है; यह कुख्यात दिखता है, यद्यपि।

नियंत्रक को सीधा सरणी भेजकर क्या यह हासिल करने का एक क्लीनर तरीका है? मैंने कुछ अलग चीजों को करने की कोशिश की है लेकिन ऐसा लगता है कि नियंत्रक डेटा प्राप्त नहीं कर सकता है। यहां तक ​​कि कोड है:

function generateList(selectedValues) { var s = { values: selectedValues //selectedValues is an array of string }; $.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json"); } 

और फिर मेरा नियंत्रक इस तरह दिखता है

 public ActionResult GenerateList(List<string> values) { //do something } 

मैं नियंत्रक पैरामीटर में "नल" प्राप्त करने में कामयाब रहा हूँ …

कोई सुझाव?

Solutions Collecting From Web of "मैं एएसपी.नेट एमवीसी नियंत्रक को एक फार्म के बिना स्ट्रिंग की सरणी कैसे पोस्ट कर सकता हूं?"

मैंने अपनी प्रतिक्रिया को संशोधित किया था जिसमें मैंने एक परीक्षण ऐप के लिए कोड शामिल किया था I

अद्यतन: मैंने '' पारंपरिक 'सेटिंग को सही करने के लिए jQuery को अपडेट किया है ताकि यह फिर से काम करे (प्रति @ डस्टिनडाविस' उत्तर)।

पहले जावास्क्रिप्ट:

 function test() { var stringArray = new Array(); stringArray[0] = "item1"; stringArray[1] = "item2"; stringArray[2] = "item3"; var postData = { values: stringArray }; $.ajax({ type: "POST", url: "/Home/SaveList", data: postData, success: function(data){ alert(data.Result); }, dataType: "json", traditional: true }); } 

और यहाँ मेरे नियंत्रक वर्ग में कोड है:

 public JsonResult SaveList(List<String> values) { return Json(new { Result = String.Format("Fist item in list: '{0}'", values[0]) }); } 

जब मैं जावास्क्रिप्ट फ़ंक्शन को कॉल करता हूं, तो मुझे एक चेतावनी मिलती है "सूची में प्रथम आइटम: 'आइटम 1' '। उम्मीद है की यह मदद करेगा!

एफवाईआई: जेकाइन ने पोस्ट डेटा को क्रमबद्ध करने के तरीके को बदल दिया।

http://forum.jquery.com/topic/nested-param-serialization

आपको 'पारंपरिक' सेटिंग को सत्य, अन्य बुद्धिमानों को सेट करना होगा

 { Values : ["1", "2", "3"] } 

के रूप में बाहर आ जाएगा

 Values[]=1&Values[]=2&Values[]=3 

के बजाय

 Values=1&Values=2&Values=3 

उत्तर के लिए सभी को धन्यवाद एक और त्वरित समाधान, पारंपरिक पैरामीटर के साथ jQuery.param विधि का उपयोग करने के लिए होगा जो स्ट्रिंग के लिए JSON ऑब्जेक्ट कन्वर्ट करने के लिए सही है:

 $.post("/your/url", $.param(yourJsonObject,true)); 

एक सरणी के रूप में डेटा पोस्ट न करें। किसी सूची में बाँध करने के लिए, कुंजी / मान जोड़े प्रत्येक कुंजी के लिए समान मूल्य के साथ जमा की जानी चाहिए।

ऐसा करने के लिए आपको एक फॉर्म की आवश्यकता नहीं होनी चाहिए। आपको केवल कुंजी / मान जोड़े की सूची की आवश्यकता है, जिसे आप $ .post में कॉल में शामिल कर सकते हैं।

.NET4.5 , MVC 5

जावास्क्रिप्ट:

जेएस में वस्तु: यहां छवि विवरण दर्ज करें

तंत्र जो पोस्ट करता है

  $('.button-green-large').click(function() { $.ajax({ url: 'Quote', type: "POST", dataType: "json", data: JSON.stringify(document.selectedProduct), contentType: 'application/json; charset=utf-8', }); }); 

सी#

वस्तुओं:

 public class WillsQuoteViewModel { public string Product { get; set; } public List<ClaimedFee> ClaimedFees { get; set; } } public partial class ClaimedFee //Generated by EF6 { public long Id { get; set; } public long JourneyId { get; set; } public string Title { get; set; } public decimal Net { get; set; } public decimal Vat { get; set; } public string Type { get; set; } public virtual Journey Journey { get; set; } } 

नियंत्रक:

 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Quote(WillsQuoteViewModel data) { .... } 

प्राप्त ऑब्जेक्ट:

यहां छवि विवरण दर्ज करें

आशा है कि यह आपको कुछ समय बचाता है।

एक और क्रियान्वयन जो वस्तुओं की सूची के साथ काम कर रहा है, न सिर्फ तार:

जे एस:

 var postData = {}; postData[values] = selectedValues ; $.ajax({ url: "/Home/SaveList", type: "POST", data: JSON.stringify(postData), dataType: "json", contentType: "application/json; charset=utf-8", success: function(data){ alert(data.Result); } }); 

मान लें कि 'चयनित मूल्य' ऑब्जेक्ट्स का आरेख है।

नियंत्रक में पैरामीटर इसी व्यू मॉडेल्स की एक सूची है

 public JsonResult SaveList(List<ViewModel> values) { return Json(new { Result = String.Format("Fist item in list: '{0}'", values[0].Name) }); } 

जैसा कि मैंने यहां चर्चा की,

यदि आप कस्टम JSON ऑब्जेक्ट को एमवीसी कार्रवाई में उत्तीर्ण करना चाहते हैं तो आप इस समाधान का उपयोग कर सकते हैं, यह एक जादू की तरह काम करता है

  public string GetData() { // InputStream contains the JSON object you've sent String jsonString = new StreamReader(this.Request.InputStream).ReadToEnd(); // Deserialize it to a dictionary var dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<String, dynamic>>(jsonString); string result = ""; result += dic["firstname"] + dic["lastname"]; // You can even cast your object to their original type because of 'dynamic' keyword result += ", Age: " + (int)dic["age"]; if ((bool)dic["married"]) result += ", Married"; return result; } 

इस समाधान का वास्तविक लाभ यह है कि आपको तर्क के प्रत्येक संयोजन के लिए एक नया वर्ग को परिभाषित करने की आवश्यकता नहीं है और उसके बगल में, आप अपनी वस्तुओं को अपने मूल प्रकारों को आसानी से डालें।

और आप अपनी नौकरी की सुविधा के लिए इस तरह एक सहायक विधि का उपयोग कर सकते हैं

 public static Dictionary<string, dynamic> GetDic(HttpRequestBase request) { String jsonString = new StreamReader(request.InputStream).ReadToEnd(); return Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(jsonString); } 

जवाब ने मेरी स्थिति में बहुत मदद की, इसलिए उसके लिए धन्यवाद हालांकि भविष्य के संदर्भ के लिए लोगों को एक मॉडल से जुड़ा होना चाहिए और फिर मान्य करना चाहिए। फिल हाक से यह पोस्ट एमवीसी 2 के लिए इसका वर्णन करता है। http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx

उम्मीद है कि यह किसी को मदद करता है