Khi gửi một biểu mẫu từ chế độ xem, làm thế nào tôi cũng có thể đọc hoặc có bộ điều khiển đọc dữ liệu trong biểu mẫu khác trong cùng một trang?MVC asp.net: Gửi nhiều biểu mẫu
Trả lời
Khi bạn gửi biểu mẫu bằng trình duyệt, nó sẽ chỉ gửi dữ liệu cho các trường trong đó < biểu mẫu > </form >. Điều này đúng không phụ thuộc vào công nghệ back-end mà bạn sử dụng, cho dù đó là ASP.net, MVC.net, PHP, Python, vv
duy nhất hai lựa chọn Tôi thực sự có thể nghĩ đến sẽ là:
- Làm như WebForms thực hiện và chỉ cần đặt một hình thức < > xung quanh toàn bộ trang và sắp xếp kết quả sau dựa trên nút được nhấn.
- Sử dụng Javascript/AJAX để thu thập bất kỳ dữ liệu nào bạn thích và đẩy lên bất kỳ cách nào bạn muốn. Bạn thậm chí có thể làm một số điều này trong thời gian thực (như khi một hộp kiểm tra được kiểm tra) và không gây ra một postback của trang.
Tất nhiên, có ưu và khuyết điểm đối với mỗi người, nhưng đó là bản chất của con thú.
Cảm ơn bạn đã chia sẻ. nó đã giúp tôi có được một xử lý về cách tôi sẽ xử lý nhập dữ liệu với asp.net mvc – MikeJ
Bạn không thể. Nếu bạn có thông tin trên trang bạn muốn gửi, bạn phải đưa nó vào biểu mẫu đã gửi. Tuy nhiên, bạn có thể sử dụng JavaScript để sao chép thông tin từ biểu mẫu này sang biểu mẫu khác khi gửi.
Bạn có thể làm điều đó trên client-side với sự kết hợp của Ajax và 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>
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
}
});
Sau đó, trên mặt điều khiển của bạn (Tôi đang sử dụng MVC nhưng WebAPI có lẽ sẽ làm việc tương tự) bạn có thể khai báo hai tham số riêng biệt phù hợp với mô hình phía máy khách của bạn và mọi thứ sẽ được sắp xếp cho bạn, đó là giả sử bạn không có tên thuộc tính trùng lặp! Gotta thích nó khi sự kỳ diệu xảy ra!
public ActionResult MyAction(FormDataModel1 formData1, FormDataModel2 formData2)
Tín dụng cho https://github.com/macek/jquery-serialize-object đối với mã serial.
Có phải trong một thẻ
hai biểu mẫu hai thẻ – zsharp