Tôi hiện có ứng dụng .net mvc3 chịu trách nhiệm quản lý các chế độ xem tương tự ở nhiều vị trí cũng sử dụng cùng một bộ điều khiển, ví dụ: site1/v1/views/index.cshtml
và site1/v2/views/index.cshtml
. Cách thức này được xử lý là bằng cách tạo ra một CustomControllerFactory kế thừa từ DefaultControllerFactory và trong phương thức CreateController, xóa các công cụ xem hiện có và thêm một khung nhìn tùy chỉnh mớiEngine chỉ định định dạng vị trí xem dựa trên url hiện tại.MVC Razor ViewEngine không an toàn cho chủ đề?
Nếu người dùng truy cập site1.com/v1/index.cshtml
, các viewengine sẽ xác định vị trí quan điểm của:
string versionDirectory = "v1";
ViewLocationFormats = new[]{ versionDirectory + "/Views/{0}.cshtml",
"/Views/{0}.cshtml",
"~/Shared/{0}.cshtml"
};
Vấn đề mà tôi đang gặp là nếu nhiều người dùng truy cập các trang khác nhau ở khoảng thời tất cả người dùng sẽ thấy cùng một chế độ xem.
Initially i thought this was related to caching, nhưng sau khi đặt rõ ràng usecache = false
trong chế độ xem tùy chỉnhEngine, có vẻ như việc này có liên quan nhiều hơn với ViewEngines class not being thread safe.
Có ai có bất kỳ ý tưởng nào về cách tôi có thể thực hiện một kết quả tương tự không, nhưng theo một cách khác?
cảm ơn trước.
không chắc chắn cách bạn thực hiện việc này nhưng mọi đối tượng tĩnh được chia sẻ trên tất cả các yêu cầu - có thể liên quan đến sự cố của bạn ... – Buildstarted