Tôi đang cố gắng để tạo ra một workaround trong bộ điều khiển của tôi mà xử lý một lỗi trong ASP.NET MVC v1. Lỗi này xảy ra nếu bạn đăng một hộp danh sách không có gì được chọn (http://forums.asp.net/p/1384796/2940954.aspx).Nếu một khóa không tồn tại trong ModelState, làm thế nào tôi có thể thêm nó? aspnetmvc1
Giải thích nhanh: Tôi có báo cáo chấp nhận hai ngày từ hộp văn bản và một hoặc nhiều lựa chọn từ một ListBox. Tất cả mọi thứ hoạt động ngoại trừ xác nhận nếu hộp danh sách là trái với không có gì được chọn.
Khi biểu mẫu đăng và đến bộ điều khiển của tôi, mô hình chứa tất cả các mục cần thiết. Tuy nhiên, ModelState không chứa khóa/giá trị cho hộp danh sách. Để giải quyết, tôi đã hy vọng một cái gì đó như thế này sẽ làm các trick:
if (!ModelState.ContainsKey("TurnTimeReportModel.Criteria.SelectedQueuesList") || ModelState["TurnTimeReportModel.Criteria.SelectedQueuesList"] == null) {
ModelState.Keys.Add("TurnTimeReportModel.Criteria.SelectedQueuesList");
ModelState["TurnTimeReportModel.Criteria.SelectedQueuesList"].Equals(new List<string>());
}
unfortuantely, đây ném ngoại lệ sau khi tôi cố gắng thêm khóa: System.NotSupportedException: đột biến một bộ sưu tập quan trọng bắt nguồn từ một từ điển không được phép.
Bất kỳ ý tưởng nào?
Cảm ơn trước!
Cảm ơn bạn đã trả lời! Tôi sẽ thử điều này và xem nó hoạt động như thế nào so sánh. – BueKoW
Cảm ơn bạn đã phản hồi tốt! Điều này cũng giúp tôi. Đã phải đối mặt với vấn đề này với một bộ điều khiển giả lập trong một bài kiểm tra đơn vị và điều này đã làm các trick! – Rob