2009-01-20 10 views
5

एक फॉर्म को सबमिट करते समय, मैं एक ही पृष्ठ में किसी अन्य रूप में डेटा को कैसे पढ़ सकता हूं या नियंत्रक पढ़ सकता हूं?एमवीसी एएसपीनेट: एकाधिक फॉर्म सबमिट करें

+1

क्या यह एक

टैग के भीतर है? –

+0

दो प्रारूप दो टैग – zsharp

उत्तर

10

जब आप ब्राउज़र के साथ एक फॉर्म जमा करते हैं, तो यह केवल < फॉर्म > </फॉर्म > के भीतर फ़ील्ड के लिए डेटा भेज देगा। इस पीठ के अंत प्रौद्योगिकी है कि आप का उपयोग, चाहे वह ASP.net, MVC.net, पीएचपी, अजगर, हो यह बात लागू रहेगी आदि

केवल दो विकल्प मैं वास्तव में सोच सकते हैं होगा:

  1. वेबफॉर्म की तरह करें और पूरे पृष्ठ के आस-पास < फॉर्म > बनाएं, और बाद में परिणाम दबाएं कि कौन सा बटन दबाया गया है।
  2. किसी भी डेटा को इकट्ठा करने के लिए जावास्क्रिप्ट/AJAX का उपयोग करें, और इसे किसी भी तरह से दबाएं। आप वास्तविक समय में ऐसा कुछ भी कर सकते हैं (जैसे चेक बॉक्स चेक किया गया है) और पृष्ठ के पोस्टबैक का कारण नहीं है।

बेशक, प्रत्येक के लिए पेशेवर और विपक्ष हैं, लेकिन यह जानवर की प्रकृति है।

+1

आपके शेयर के लिए धन्यवाद। इससे मुझे एएसपीनेट एमवीसी के साथ डेटा प्रविष्टि को संभालने के तरीके पर एक संभाल पाने में मदद मिली – MikeJ

1

आप नहीं कर सकते। अगर आपके पास उस पृष्ठ पर जानकारी है जिसे आप जमा करना चाहते हैं, तो आपको इसे सबमिट किए गए फॉर्म में शामिल करना होगा। सबमिट करते समय आप एक फॉर्म से जानकारी को कॉपी करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं।

2

आप अजाक्स और जावास्क्रिप्ट के संयोजन के साथ क्लाइंट-साइड पर यह कर सकता है ...

<SCRIPT language="JavaScript"> 
function submitforms() 
{ 
     new Ajax.Request(formUrl, 
     { 
      parameters: $H({param1:value,param2:value}).toQueryString(), 
      method: 'post', 
      onSuccess: function(transport) { 
       document.myform.submit(); 
      } 
     } 
} 
</SCRIPT> 
0
 var formData1 = $("#form1").serializeObject(); 
     var formData2 = $("#form2").serializeObject(); 
     $.extend(formData1, formData2); 
     var formData = JSON.stringify(formData1); 

     $.ajax({ 
      type: "POST", 
      url: "@Url.Action("MyAction", "MyController")", 
      data: formData, 
      dataType: "json", 
      contentType: 'application/json; charset=utf-8', 
      success: function (data) { 
       ...Do something with the data 
      }, 
      error: function(result) { 
       ...Handle the error 
      } 
     }); 
अपने नियंत्रक तरफ तो

(मैं MVC का उपयोग कर रहा हूँ, लेकिन वेबएपीआई शायद काम करेगा वही) आप दो अलग-अलग पैरामीटर घोषित कर सकते हैं जो आपके क्लाइंट-साइड मॉडल से मेल खाते हैं और सब कुछ आपके लिए हल किया जाएगा, यह मानते हुए कि आपके पास संपत्ति के नाम ओवरलैप नहीं हैं! जब जादू होता है तो उसे प्यार करना चाहिए! serializeObject कोड के लिए https://github.com/macek/jquery-serialize-object को

public ActionResult MyAction(FormDataModel1 formData1, FormDataModel2 formData2) 

क्रेडिट।

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