5

Tôi gặp phải sự cố trong đó tôi có Html.DropDownList trong chế độ xem của mình sẽ đăng lại giá trị đã chọn lần đầu tiên tôi gửi biểu mẫu, nhưng mỗi lần đăng sau sẽ chỉ đăng dữ liệu từ lần đăng đầu tiên. Vì vậy, tôi đã thêm lối sống = "thoáng qua" vào phần tử thành phần nơi tôi đã định cấu hình bộ điều khiển cho windsor lâu đài, đã khắc phục được sự cố, nhưng tất nhiên làm cho postback mất nhiều thời gian hơn kể từ khi bộ điều khiển mới được khởi tạo theo yêu cầu. Với thông tin trên, thông tin chi tiết, đề xuất hoặc giải pháp nào có thể giúp xác định câu hỏi ban đầu của tôi về lối sống của bộ điều khiển? Cảm ơn tất cả sự giúp đỡ và hỗ trợ!Liệu lối sống bộ điều khiển có luôn thoáng qua trong cấu hình Windsor cho ASP.NET MVC không?

Trả lời

6

Bộ điều khiển MVC là thoáng qua. Nghĩ về nó, điều này có ý nghĩa vì một vài lý do. Đầu tiên, nếu một cá thể đơn được sử dụng để phục vụ nhiều yêu cầu và nếu nhiều yêu cầu xảy ra để đạt cùng một bộ điều khiển cùng một lúc, bạn sẽ trải nghiệm một số điều kiện đua khá kỳ quái. Thứ hai, HTTP là do bản chất của nó, và các yêu cầu tồn tại độc lập với nhau. Điều này được phản ánh trong lối sống thoáng qua của các bộ điều khiển.

+0

LOL. Tôi có lẽ đã suy nghĩ quá mức mà không xem xét điều đó chút nào. Cảm ơn vì sự thấu hiểu. Có lẽ và rõ ràng CÓ cho câu hỏi của tôi, nhưng tôi đã suy nghĩ quá nhiều bên trong hộp windsor để nhận ra các giải pháp. Cảm ơn nhiều! – mkelley33

+0

Có thể đáng để chỉ ra rằng không định nghĩa một lối sống, mặc định là "Singleton" sẽ được sử dụng. Không có thắc mắc rằng sẽ gây ra vấn đề. – Ted

5

Tạm thời, có, nhưng vì lợi ích, tại sao không PerWebRequest thay vì Tạm thời? Tôi đã nhìn thấy một vài blog sử dụng lối sống PerWebRequest và tôi không thể nghĩ ra lý do tại sao không. Có câu trả lời nào không?

4

Tôi đồng ý với Dion. Đến đây tìm kiếm giải pháp cho cùng một câu hỏi này. Có vẻ như PerWebRequest phù hợp hơn.

Tùy thuộc vào cách bạn tích hợp vùng chứa của bạn vào MVC và WebApi, bạn có thể không hướng dẫn Windsor giải phóng các phụ thuộc khi bộ điều khiển của bạn không được sử dụng nữa.

Nếu bạn đặt nó để PerWebRequest, nó sẽ tự động nhả điều khiển của bạn, và tất cả các phụ thuộc của nó khi yêu cầu kết thúc

Các vấn đề liên quan