2009-01-20 10 views

Odpowiedz

10

Po przesłaniu formularza za pomocą przeglądarki prześle dane tylko dla pól w ramach tego <formularza> </formularz >. Dzieje się tak niezależnie od technologii back-end, którego używasz, czy to ASP.net, MVC.net, PHP, Python, itp

Tylko dwie opcje mogę naprawdę myśleć byłoby:

  1. Wykonuj WebForms i po prostu umieść na całej stronie <formularz>, a następnie uporządkuj wyniki na podstawie tego, który przycisk zostanie naciśnięty.
  2. Użyj Javascript/AJAX, aby zebrać dowolne dane i podnieś je w dowolny sposób. Możesz nawet zrobić to w czasie rzeczywistym (np. Gdy zaznaczone jest pole wyboru) i nie spowodować odświeżenia strony.

Oczywiście, każdy ma swoje zalety i wady, ale taka jest natura bestii.

+1

Dziękujemy za udział. pomógł mi zrozumieć, jak mam sobie poradzić z wprowadzaniem danych za pomocą asp.net mvc – MikeJ

1

Nie możesz. Jeśli masz informacje na stronie, którą chcesz przesłać, musisz dołączyć ją do przesłanego formularza. Możesz jednak użyć JavaScript do skopiowania informacji z jednego formularza do drugiego podczas przesyłania.

2

Można to zrobić na stronie klienta z kombinacji Ajax i JavaScript ...

<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 
      } 
     }); 

Następnie na swojej stronie sterownika (używam MVC WebAPI ale prawdopodobnie działa tak tak samo) możesz zadeklarować dwa oddzielne parametry, które pasują do twoich modeli po stronie klienta i wszystko będzie uporządkowane, zakładając, że nie masz nakładających się nazw właściwości! Uwielbiam to, kiedy magia się dzieje!

public ActionResult MyAction(FormDataModel1 formData1, FormDataModel2 formData2) 

Kredyt do https://github.com/macek/jquery-serialize-object dla kodu serializeObject.

Powiązane problemy