Ah hiểu lầm điều này.
Nếu bạn biết những gì Dropdowns có khả năng có thể được thêm vào, tôi sẽ luôn luôn chỉ có một giá trị trên mô hình của bạn. MVC sẽ đặt chúng làm giá trị mặc định nếu không có gì nhận được.
EDIT: Bạn vẫn có thể truy cập vào bộ sưu tập các hình thức theo một cách thô hơn từ bộ điều khiển withing sử dụng
Request.Form.Keys
Request.QueryString.Keys
Request["ExpectedDropdownName"]
Tất nhiên chúng sẽ được tất cả các giá trị đăng bởi hình thức của bạn vì vậy bạn sẽ cần một cách để nhận ra một trong những danh sách thả xuống của bạn như tiền tố hoặc thứ gì đó. Ví dụ
foreach (var key in Request.Form.AllKeys.Where(k => k.StartsWith("dynamic-dropdown-"))
{
var selectedValue = Request[key];
}
tôi vẫn không thực sự hiểu làm thế nào bạn có ý định để xử lý các Dropdowns động nếu bạn không biết những gì họ sẽ có và điều này có thể gây ra một số vấn đề và sẽ làm cho xác nhận hoàn toàn năng động và phía khách hàng (không an toàn 100%). Điều đó có thể trình bày một số vấn đề bảo mật là tốt, nhưng có một số sceanarios, nơi bạn có thể sử dụng này và tôi sẽ giả sử bạn có một trong số họ.
Nếu không phải như vậy, đừng quên rằng chỉ vì Mô hình có thuộc tính, nó không phải được đăng lại.
Bạn có thể làm:
public class MyModel
{
[Required]
public string FirstName { get; set; }
public string PossibleDropdown1 { get; set; }
public string PossibleDropdown2 { get; set; }
}
Bộ điều khiển sẽ làm điều đó tốt nhất là nên cư mô hình, nhưng nếu bạn không vượt qua một số lĩnh vực lại từ hình thức, họ sẽ chỉ được null và hành động sẽ vẫn công việc.
Tôi cũng đã triển khai nhiều kịch bản phức tạp hơn như thế này bằng cách sử dụng các đối tượng là con của mô hình gốc và tất cả đều có thể vô hiệu. Điều đó đòi hỏi một chút công việc ưa thích xung quanh ajax gọi đến EditorTemplates trong chế độ xem giả để đảm bảo tiền tố là đúng cho MVC để phân tích cú pháp, nhưng tôi sẽ không đi vào đó ở đây.
bạn đã thử sử dụng ajax –
@COLDTOLD đây là vấn đề phía máy chủ, ajax không phải là giải pháp có tác động nào –
@Marek Karbarz bạn có thể làm mới một phần của trang bằng cách thêm các mục mới với ajax –